【问题标题】:PyQt button signal with .ui file带有 .ui 文件的 PyQt 按钮信号
【发布时间】:2017-09-25 21:04:13
【问题描述】:

我想打印一个简单的文本来显示我的对话框中的“确定”或“取消”按钮已被按下。 QuantityDialog 加载“quantitydialog.ui”文件并构建对话窗口。我相信clicked() 是按下按钮的信号,所以我用打印简单文本的函数重载它。

from PyQt5 import QtWidgets, uic

app = QtWidgets.QApplication(sys.argv)
dialog = QuantityDialog()
dialog.show()
sys.exit(app.exec_())

class QuantityDialog(QtWidgets.QDialog):
    def __init__(self):
        super().__init__()
        uic.loadUi("quantitydialog.ui",self)

        self.buttonBox.clicked = self.buttonPress

    def buttonPress(self):
        print ("button pressed")

quantitydialog.ui:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Dialog</class>
 <widget class="QDialog" name="Dialog">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>180</width>
    <height>81</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Quantity Dialog</string>
  </property>
  <widget class="QWidget" name="gridLayoutWidget">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>181</width>
     <height>81</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="2">
     <widget class="QLabel" name="label">
      <property name="text">
       <string>tsp</string>
      </property>
     </widget>
    </item>
    <item row="0" column="0">
     <widget class="QLabel" name="qtyText">
      <property name="text">
       <string>Quantity:</string>
      </property>
     </widget>
    </item>
    <item row="0" column="1">
     <widget class="QPlainTextEdit" name="plainTextEdit"/>
    </item>
    <item row="1" column="0" colspan="3">
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="standardButtons">
       <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
      </property>
      <property name="centerButtons">
       <bool>true</bool>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

现在它没有打印“按下按钮”文本。我做错了什么?

【问题讨论】:

标签: python qt pyqt


【解决方案1】:

可能有点晚了,但是.. 您实际上需要使用 .connect 函数来响应新闻事件。

self.buttonBox.clicked = self.buttonPress

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 2017-01-23
    • 2013-10-22
    • 2012-06-24
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    相关资源
    最近更新 更多