PyQt多視窗呼叫

2021-09-07 01:14:52 字數 1441 閱讀 9053

經常有人問到如何在乙個主視窗中開啟乙個對話方塊,然後在確認對話方塊之後,開啟另乙個視窗進行後續操作,

要求主視窗和最終的視窗之間都能響應使用者操作,也就是非模態視窗。隨手寫了幾行**,簡要示意。

:::python

#!/usr/bin/python

# -*- coding: utf-8 -*-

# gui ([email protected])

# license: bsd

from pyqt4.qtcore import *

from pyqt4.qtgui import *

import sys

class w1(qwidget):

def __init__(self, parent=none):

super(w1, self).__init__(parent)

self.btn = qpushbutton('click1')

vb = qvboxlayout()

vb.addwidget(self.btn)

self.setlayout(vb)

self.btn.clicked.connect(self.fireupwindows2)

def fireupwindows2(self):

w2 = w2()

if w2.exec_():

self.w3 = w3() # 需要通過self例項化為全域性變數,不加self的話,一執行就被**,也就無法顯示。

self.w3.show()

class w2(qdialog):

def __init__(self, parent=none):

super(w2, self).__init__(parent)

self.btn = qpushbutton('click2')

vb = qvboxlayout()

vb.addwidget(self.btn)

self.setlayout(vb)

self.btn.clicked.connect(self.fireupwindows3)

def fireupwindows3(self):

self.accept()

class w3(qwidget):

def __init__(self, parent=none):

super(w3, self).__init__(parent)

self.resize(300, 300)

self.btn = qlabel('the last window')

vb = qvboxlayout()

vb.addwidget(self.btn)

self.setlayout(vb)

if __name__ == "__main__":

w = w1()

w.show()

PyQt多視窗呼叫

經常有人問到如何在乙個主視窗中開啟乙個對話方塊,然後在確認對話方塊之後,開啟另乙個視窗進行後續操作,要求主視窗和最終的視窗之間都能響應使用者操作,也就是非模態視窗。隨手寫了幾行 簡要示意。python usr bin python coding utf 8 gui imgui qq.com lice...

PyQt 實現多視窗

1.使用qtdesigner設計視窗主視窗 main window 子視窗 dialog 生成的是ui檔案2.為兩個視窗生成py檔案 3.建立兩個視窗的繼承類from pyqt5.qtwidgets import from mainwindow import mainwindow為子視窗py檔名 f...

PyQt5 多視窗跳轉

在各個視窗類方法例項化需要跳轉的視窗類,再呼叫 show 方法展示新視窗即可。class mywindow qtwidgets.qmainwindow,ui mainwindow 開始視窗 連線視窗 def init self super mywindow,self init self.setupu...