我正在编写一个用于数据库处理的小应用程序,并且我认为我尝试了pyqt5,因为我从(非常古老的)过去有一些PySide的经验。到目前为止,它就像一个魅力,但现在我想打开一个对话框,如果用户决定创建一个新的数据库条目。这发生在QMainWindow上。旁注:我的意图是使用Dialog模式,这样两个小部件就可以同时存在。
问题是,只要我点击应该打开对话框的按钮,我的程序就会毫无例外地终止。我在这里有点不知所措......
这是我写的测试对话:
class ColorDialog(QDialog):
def __init__(self, Color=None, parent=None):
super(self).__init__(parent)
self.result = ""
layout = QVBoxLayout()
btn_ok = QPushButton("OK", self)
layout.addWidget(btn_ok)
btn_ok.clicked.connect(self._ok)
self.setLayout(layout)
self.setGeometry(200, 200, 200, 200)
def _ok(self):
self.result = "1"
def get_result(self):
return self.result
我用以下方法调用此对话框:
def _new_color(self):
cp = ColorDialog(self)
cp.exec_()
print(cp.get_result())
我也试过show()而不是exec_()来达到同样的效果。
主窗口的调用如下:
def main():
db = DBService()
app = QApplication(sys.argv)
UI = MainWindow(db, "eng")
sys.exit(app.exec_())
if __name__ == "__main__":
main()
我在这里做错了什么?我觉得我错过了一些基本的东西...... 谢谢你的帮助