【发布时间】: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>
现在它没有打印“按下按钮”文本。我做错了什么?
【问题讨论】:
-
将
self.buttonBox.clicked = self.buttonPress更改为self.buttonBox.clicked.connect(self.buttonPress)