2012-01-26 39 views
1

我基本上有一個QMainWindow和一個對話窗口,其構造函數如下所示;你可以看到,我想把對話框視爲一個工具窗口(這正是我需要的窗口的類型)。工具窗口應該在QMainWindow上點擊按鈕後顯示,並與QMainWindow進行交互以繼續。Qt - 顯示父項後無法顯示Qt.Tool窗口?

顯示我的QMainWindow之前,調用.show()我的工具窗口中正確地滋生了。但是,如果我試圖在顯示QMainWindow後顯示我的工具窗口(例如按下按鈕後),則調用.show()和.exec()不會產生任何效果。

(還有的甚至沒有窗戶的任何閃爍。有沒有任何重生!)

一旦所示的窗口,我不能改變窗口的標誌。它沒有效果。

我怎樣才能讓這個工具窗口顯示?!
謝謝!


PyQt4的
蟒蛇2.7.2
Windows 7的

+0

更新;我有用.exec_()顯示的工具,但是這會阻止與QMainWindow的交互。 –

回答

1

我不知道我理解你的問題確實是。這個測試的代碼片段似乎功能正常,雖然我不知道你失蹤Ui_Aesthetics_Tool()代碼做修改工具窗口的內容:

#!/usr/bin/env python 

import sys 
from PyQt4 import QtCore, QtGui 


class Main(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super(Main, self).__init__(parent) 
     self.resize(640,480)   
     self.button = QtGui.QPushButton("Click me") 
     self.setCentralWidget(self.button) 

     self.button.clicked.connect(self.showTool) 

    def showTool(self): 
     tool = VisualTool(self) 
     tool.show() 

class VisualTool(QtGui.QDialog): 
    def __init__(self, parent = None): 
     QtGui.QWidget.__init__(self, parent) 
     # self.WidgetBoard = Ui_Aesthetics_Tool() 
     # self.WidgetBoard.setupUi(self) 
     self.setWindowFlags(QtCore.Qt.Tool) 


if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    myapp = Main() 
    myapp.show() 
    sys.exit(app.exec_()) 

我能夠啓動多個工具窗口。 至於使用exec_(),這是一個模態阻塞調用,可能不是你想要的。

+0

只是修復它.... 我的是完全像你的。不過,我只是加了'自我'。到'工具',現在一切正常!不知道爲什麼你現在沒有它!謝謝! –