【问题标题】:I am not using QPixmap, in PyQt. but I get QPixmap: It is not safe to use pixmaps outside the GUI thread in PyQt我没有在 PyQt 中使用 QPixmap。但我得到了 QPixmap: It is not safe to use pixmaps outside the GUI thread in PyQt
【发布时间】:2011-03-03 22:49:43
【问题描述】:

我正在将 PyQt 用于一个项目。但并非突然间我收到一个错误:

QPixmap:在 PyQt 的 GUI 线程之外使用像素图是不安全的

我没有在我的代码中的任何地方使用 QPixmap...请帮助。

class itemCheckBtn(QtGui.QDialog):
qApp = None;
okCallback = None;
def __init__(self,parent=None):
    itemCheckBtn.qApp=None;
    QtGui.QWidget.__init__(self, None)
    self.ui = Ui_merchantPriceFrom();
    self.ui.setupUi(self)
    QtCore.QObject.connect(self.ui.itemCheckButton, QtCore.SIGNAL("clicked()"), self.submit)
def submit(self):
    print "Hi";

主类是

class MyForm(QtGui.QMainWindow):
  serverThreadObject = None;
  qApp = None;
  sock = None;
  def __init__(self, qApp,parent=None):
    MyForm.qApp=qApp;
    QtGui.QWidget.__init__(self, parent)
    self.ui = Ui_bluwavemerchantmain()
    self.ui.setupUi(self)
    self.ui.server_connection_status_label.setText("Server Offline..");
    QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), self.connectUser )
    QtCore.QObject.connect(self.ui.actionStart_Server, QtCore.SIGNAL("triggered()"), self.startServer);
    QtCore.QObject.connect(self.ui.actionStop_Server, QtCore.SIGNAL("triggered()"), self.stopServerFromGui);
    QtCore.QObject.connect(self.ui.actionExit, QtCore.SIGNAL("triggered()"), self.closeEventFromMenu);
    QtCore.QObject.connect(self, QtCore.SIGNAL("triggered()"), self.closeEvent);

当我尝试从“MyForm”类调用“itemCheckBtn”类时出现错误。

【问题讨论】:

    标签: python pyqt qpixmap


    【解决方案1】:

    看起来您正在使用线程,并且不知何故您正试图从主 GUI 线程以外的某个线程更改 GUI(这是不允许的)。这可能是间接发生的——例如,您的服务器线程调用 MyForm 上的一个函数,该函数试图更新 itemCheckBtn。即使代码是 MyForm 的一部分,它仍然是从服务器线程执行。相反,您需要使用一些线程安全机制来通知 GUI 线程发生了更改,并让它完成 GUI 工作。 (见http://doc.qt.nokia.com/4.6/threads-qobject.html

    【讨论】:

      猜你喜欢
      • 2022-12-02
      • 2015-08-19
      • 2022-12-27
      • 2012-11-20
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2010-12-05
      • 2022-12-02
      相关资源
      最近更新 更多