创建多个主窗口
Creating multiple primary windows
我正在尝试编写一个打开多个顶级(主)窗口的应用程序。
由于没有父窗口的小部件是主窗口(http://qt-project.org/doc/qt-4.8/application-windows.html),因此我制作了一个示例程序,每次按下按钮时都会生成一个新窗口。
我可以在C++中获得所需的结果:
Window::Window(QWidget *parent):
QWidget(parent) {
QPushButton *btn = new QPushButton("Another one!", this);
connect(btn, SIGNAL(clicked()), this, SLOT(addOne()));
}
void Window::addOne() {
QWidget *nw = new QWidget();
nw->show();
}
并且每次按下按钮都会创建一个新的空窗口,并且在最后一个窗口关闭时程序正确终止。
我在 python3 中使用 PyQt4 尝试了相同的操作,但没有窗口显示:
import sys
from PyQt4 import QtCore, QtGui
class Window(QtGui.QWidget):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(300, 300, 250, 150)
b = QtGui.QPushButton('Another one!', self)
b.clicked.connect(self.new_window)
self.show()
def new_window(self):
print('Opening new window...')
w = QtGui.QWidget()
w.show()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())
消息打印正确,因此似乎不是呼叫问题...无论我使用 python3 还是 2,结果都是一样的。
我错过了什么?
这是因为垃圾回收。
相关文章:
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- 窗口 :创建仅具有对我的进程的权限的目录 (C++)
- DXGI_ERROR_INVALID_CALL为核心窗口创建交换链时
- 视觉C++窗口创建失败
- 从 WinAPI 窗口创建控制台窗口
- 窗口创建错误 - 可能是事件处理
- Qt:当主窗口被模式QDialog阻止时,如何聚焦从主窗口创建的无模式QDialog
- Visual Studio 2012应用程序窗口创建/调整大小与VS2008窗口创建不同?为什么?
- C++/SFML窗口创建失败
- 窗口创建问题
- 使用创建窗口创建 MDI 子窗口
- MDI 子窗口创建失败
- Win32窗口创建失败
- 挂钩窗口创建;挂钩未被触发
- 如何使用'C'或'C++'为窗口创建独立的程序或应用程序
- 调用glfwWindowHint()后,GLFW窗口创建失败
- c++窗口创建/ SDL
- Qt从我的主窗口创建新窗口
- 窗口创建失败-LoadFrame(IDR_MAINFRAME)使C++失败
- Visual Studio和SDL2窗口创建失败