Tôi gặp khó khăn khi hiển thị biểu tượng QAction được chọn từ chủ đề biểu tượng hiện tại. Tôi tạo ra ui với nhà thiết kế Qt và xuất nó với pyuic4 sample.ui > sample.py
. Sau khi thiết lập các biểu tượng từ chủ đề với self.actionSample.setIcon(QtGui.QIcon.fromTheme(_fromUtf8("document-open")))
, tôi nhận được mã nguồn sau đây:QIcon.fromTheme không hiển thị biểu tượng trong PyQt
from PyQt4 import QtCore, QtGui
import sys
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(800, 600)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.toolBar = QtGui.QToolBar(MainWindow)
self.toolBar.setObjectName(_fromUtf8("toolBar"))
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
self.actionSample = QtGui.QAction(MainWindow)
self.actionSample.setObjectName(_fromUtf8("actionSample"))
self.actionSample.setIcon(QtGui.QIcon.fromTheme(_fromUtf8("document-open")))
self.toolBar.addAction(self.actionSample)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)
window.show()
app.exec_()
Khi tôi thực hiện điều đó, thanh công cụ không hiển thị biểu tượng 'tài liệu mở'. Nó là một lỗi hay tôi đang làm điều gì đó sai?
Cảm ơn
Bạn đang sử dụng định dạng nào và bạn đang sử dụng phiên bản Qt nào? Ngoài ra, bạn có đặt biểu tượng trong Trình thiết kế hoặc tự thêm biểu tượng theo cách thủ công không? – ekhumoro
@ekhumoro Tôi đang chạy: Gnu/Linux 3.2.0-2-686 - Thử nghiệm Debian/ Python 2.7.3rc2/ python-qt4 4.9.3-4/ Tôi thiết lập biểu tượng theo cách thủ công sau khi tạo ' .py'. Nhưng khi tôi tạo ra nó với qt-designer thì cũng vậy. – Hypergraphe
Hộp thoại Hành động mới trong Trình chỉnh sửa hành động sẽ hiển thị biểu tượng bên cạnh thuộc tính "Chủ đề biểu tượng" nếu có. – ekhumoro