gpt4 book ai didi

python - 使用信号弹出屏幕

转载 作者:行者123 更新时间:2023-11-30 23:52:17 25 4
gpt4 key购买 nike

我在使用信号来显示小屏幕时遇到了一些问题。缩短到目前为止我所拥有的一切,下面的代码应该显示我的问题。

import sys
from PyQt4 import QtGui, QtCore

qApp = QtGui.QApplication(sys.argv)

class InformatieVenster(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setWindowTitle('Informatie')
self.setGeometry(100,100,300,200)

informatie = InformatieVenster()

class MenuKlasse(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)

about = QtGui.QAction('About...', self)
about.setShortcut('Ctrl+A')
about.setStatusTip('Some text, haha')
self.connect(about, QtCore.SIGNAL('clicked()'), QtCore.SIGNAL(informatie.show()))

menubar = self.menuBar()
self.Menu1 = menubar.addMenu('&File')
self.Menu1.addAction(about)

Menu = MenuKlasse()
Venster = QtGui.QMainWindow()
Venster.menuBar().addMenu(Menu.Menu1)
Venster.setGeometry(200, 200, 300, 300);
size = Venster.geometry()
Venster.show()
qApp.exec_()

运行该程序时,会自动弹出“informatie”窗口。但是...我只希望每次单击菜单中的“关于...”或使用指定的快捷方式时都会发生这种情况。

我如何改进我的代码,使我的问题成为历史?

问候!

最佳答案

该窗口已显示,因为您实际上在连接期间调用了 .show()。您必须将函数对象(而不是函数调用的结果)作为参数传递给 .connect()。此外,如果发出信号,要调用的函数称为“slot”,第二个SIGNAL()完全放错了地方。

将连接线替换为:

self.connect(about, QtCore.SIGNAL('triggered()') informatie.show)

更好的是,使用现代连接语法:

about.triggered.connect(informatie.show)

顺便说一句,不要在 GUI 程序中使用绝对大小。而是使用布局管理。

关于python - 使用信号弹出屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6374474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com