とりあえず、メッセージボックスの表示部分をコメントアウトしてみてください。
python
1class Widget01(QtGui.QWidget):
2 def msgbox01(self):
3 #msgBox = QtGui.QMessageBox(self)
4 #msgBox.setText("Hello World - using PySide version " + PySide.__version__)
5 #msgBox.exec_()
6 #コメントアウトするだけではエラーになるので
7 pass
8
「余計なウィンドウ」が表示されましたよね?
要はあなたのプログラムは、「ウィンドウを表示するプログラムの、ウィンドウの初期化時にメッセージボックスを表示する」プログラムなんです。
メッセージボックスを表示する「だけ」であれば、QWidgetを作る必要はありません。(PySideはよく知らんけど、多分)
python
1# coding: utf-8
2
3import sys
4import PySide
5from PySide import QtGui
6
7if __name__ == '__main__':
8 app = QtGui.QApplication(sys.argv)
9
10 dlg = QtGui.QMessageBox()
11 dlg.setText("Hello World - using PySide version " + PySide.__version__)
12 dlg.exec_()
13
14
(linuxmint18 PySide1,2,2で確認)
先も言ったとおりPySide(Qt)は詳しくないのであまりコメントするのもはばかられるのだけど、乗りかかった船ということで、ちょっと付き合いましょうか。
でも、QMessageBoxって、QWidgetに配置できないんでしょか。。。
この意味がちょっと理解できないのですが、こういうことでしょうかね。
python
1# coding: utf-8
2
3import sys
4import PySide
5from PySide import QtGui
6
7class Msgbox01(QtGui.QMessageBox):
8 def __init__(self):
9 super().__init__()
10 self.setText("Hello World - using PySide version " + PySide.__version__)
11
12if __name__ == '__main__':
13 app = QtGui.QApplication(sys.argv)
14
15 m01 = Msgbox01()
16 m01.show()
17
18 sys.exit(app.exec_())
19
QMessageBoxはQWidgetの派生クラスであるため、QWidgetと似たような扱いができます。
あと、公式サイト(?)のチュートリアルにも、似たようなチュートリアルがありましたので、紹介しておきます。
とりあえず、いろんなサンプルに触れてみることをおすすめします。
あ、書いている間に自己解決されてようですね。
でもせっかくなので、投稿しておきます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/27 15:08
退会済みユーザー
2016/10/27 16:54