回答編集履歴
5
最終的な結論とコード
answer
CHANGED
@@ -66,4 +66,32 @@
|
|
66
66
|
|
67
67
|
#sys.exit(app.exec_()) # ← これはいらない
|
68
68
|
|
69
|
+
```
|
70
|
+
|
71
|
+
【結論】、このやり方で、QMessageBoxを、QWidgetに配置してみたらできました。
|
72
|
+
結局、exec_()は、終了時に1回実行されるべきものなんですね。
|
73
|
+
|
74
|
+
```python
|
75
|
+
# coding: utf-8
|
76
|
+
# Here your code !
|
77
|
+
|
78
|
+
import sys
|
79
|
+
import PySide
|
80
|
+
from PySide import QtGui
|
81
|
+
|
82
|
+
class Widget01(QtGui.QWidget):
|
83
|
+
def __init__(self):
|
84
|
+
super().__init__()
|
85
|
+
self.msgbox01()
|
86
|
+
|
87
|
+
def msgbox01(self):
|
88
|
+
msgBox = QtGui.QMessageBox(self)
|
89
|
+
msgBox.setText("Hello World - using PySide version " + PySide.__version__)
|
90
|
+
msgBox.exec_()
|
91
|
+
|
92
|
+
if __name__ == '__main__':
|
93
|
+
app = QtGui.QApplication(sys.argv)
|
94
|
+
|
95
|
+
w01 = Widget01()
|
96
|
+
|
69
97
|
```
|
4
さらに、コード修正
answer
CHANGED
@@ -41,4 +41,29 @@
|
|
41
41
|
dlg.setText("Hello World - using PySide version " + PySide.__version__)
|
42
42
|
dlg.exec_()
|
43
43
|
|
44
|
+
```
|
45
|
+
|
46
|
+
さらに、exec_()メソッドが2回実行されてるのが、おかしいことに気づき、以下のコードにたどり着く。
|
47
|
+
|
48
|
+
```python
|
49
|
+
# coding: utf-8
|
50
|
+
# Here your code !
|
51
|
+
|
52
|
+
import sys
|
53
|
+
import PySide
|
54
|
+
from PySide import QtGui
|
55
|
+
|
56
|
+
class Msgbox01(QtGui.QMessageBox):
|
57
|
+
def __init__(self):
|
58
|
+
super().__init__()
|
59
|
+
self.setText("Hello World - using PySide version " + PySide.__version__)
|
60
|
+
|
61
|
+
if __name__ == '__main__':
|
62
|
+
app = QtGui.QApplication(sys.argv)
|
63
|
+
|
64
|
+
m01 = Msgbox01()
|
65
|
+
m01.exec_()
|
66
|
+
|
67
|
+
#sys.exit(app.exec_()) # ← これはいらない
|
68
|
+
|
44
69
|
```
|
3
ソースコード一部修正
answer
CHANGED
@@ -41,6 +41,4 @@
|
|
41
41
|
dlg.setText("Hello World - using PySide version " + PySide.__version__)
|
42
42
|
dlg.exec_()
|
43
43
|
|
44
|
-
sys.exit(app.exec_())
|
45
|
-
|
46
44
|
```
|
2
最終的に、落ち着いたコードを記載
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
解決したと思って、以下のコードを書いたのですが、これだと正常に終了しないです
|
1
|
+
解決したと思って、以下のコードを書いたのですが、これだと正常に終了しないです。
|
2
2
|
|
3
3
|
```python
|
4
4
|
# coding: utf-8
|
@@ -21,4 +21,26 @@
|
|
21
21
|
|
22
22
|
sys.exit(app.exec_())
|
23
23
|
|
24
|
+
```
|
25
|
+
|
26
|
+
結局のところ、katsukoさんのご回答のならって、以下のコードになりました。
|
27
|
+
でも、QMessageBoxって、QWidgetに配置できないんでしょか。。。
|
28
|
+
|
29
|
+
```python
|
30
|
+
# coding: utf-8
|
31
|
+
# Here your code !
|
32
|
+
|
33
|
+
import sys
|
34
|
+
import PySide
|
35
|
+
from PySide import QtGui
|
36
|
+
|
37
|
+
if __name__ == '__main__':
|
38
|
+
app = QtGui.QApplication(sys.argv)
|
39
|
+
|
40
|
+
dlg = QtGui.QMessageBox()
|
41
|
+
dlg.setText("Hello World - using PySide version " + PySide.__version__)
|
42
|
+
dlg.exec_()
|
43
|
+
|
44
|
+
sys.exit(app.exec_())
|
45
|
+
|
24
46
|
```
|
1
自己解決したと思ったコードでは、正常終了しないことが判明した
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
以下の
|
1
|
+
解決したと思って、以下のコードを書いたのですが、これだと正常に終了しないですね。
|
2
2
|
|
3
3
|
```python
|
4
4
|
# coding: utf-8
|