回答編集履歴

5

最終的な結論とコード

2016/10/27 16:19

投稿

退会済みユーザー
test CHANGED
@@ -135,3 +135,59 @@
135
135
 
136
136
 
137
137
  ```
138
+
139
+
140
+
141
+ 【結論】、このやり方で、QMessageBoxを、QWidgetに配置してみたらできました。
142
+
143
+ 結局、exec_()は、終了時に1回実行されるべきものなんですね。
144
+
145
+
146
+
147
+ ```python
148
+
149
+ # coding: utf-8
150
+
151
+ # Here your code !
152
+
153
+
154
+
155
+ import sys
156
+
157
+ import PySide
158
+
159
+ from PySide import QtGui
160
+
161
+
162
+
163
+ class Widget01(QtGui.QWidget):
164
+
165
+ def __init__(self):
166
+
167
+ super().__init__()
168
+
169
+ self.msgbox01()
170
+
171
+
172
+
173
+ def msgbox01(self):
174
+
175
+ msgBox = QtGui.QMessageBox(self)
176
+
177
+ msgBox.setText("Hello World - using PySide version " + PySide.__version__)
178
+
179
+ msgBox.exec_()
180
+
181
+
182
+
183
+ if __name__ == '__main__':
184
+
185
+ app = QtGui.QApplication(sys.argv)
186
+
187
+
188
+
189
+ w01 = Widget01()
190
+
191
+
192
+
193
+ ```

4

さらに、コード修正

2016/10/27 16:19

投稿

退会済みユーザー
test CHANGED
@@ -85,3 +85,53 @@
85
85
 
86
86
 
87
87
  ```
88
+
89
+
90
+
91
+ さらに、exec_()メソッドが2回実行されてるのが、おかしいことに気づき、以下のコードにたどり着く。
92
+
93
+
94
+
95
+ ```python
96
+
97
+ # coding: utf-8
98
+
99
+ # Here your code !
100
+
101
+
102
+
103
+ import sys
104
+
105
+ import PySide
106
+
107
+ from PySide import QtGui
108
+
109
+
110
+
111
+ class Msgbox01(QtGui.QMessageBox):
112
+
113
+ def __init__(self):
114
+
115
+ super().__init__()
116
+
117
+ self.setText("Hello World - using PySide version " + PySide.__version__)
118
+
119
+
120
+
121
+ if __name__ == '__main__':
122
+
123
+ app = QtGui.QApplication(sys.argv)
124
+
125
+
126
+
127
+ m01 = Msgbox01()
128
+
129
+ m01.exec_()
130
+
131
+
132
+
133
+ #sys.exit(app.exec_()) # ← これはいらない
134
+
135
+
136
+
137
+ ```

3

ソースコード一部修正

2016/10/27 16:08

投稿

退会済みユーザー
test CHANGED
@@ -84,8 +84,4 @@
84
84
 
85
85
 
86
86
 
87
- sys.exit(app.exec_())
88
-
89
-
90
-
91
87
  ```

2

最終的に、落ち着いたコードを記載

2016/10/27 15:57

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- 解決したと思って、以下のコードを書いたのですが、これだと正常に終了しないです
1
+ 解決したと思って、以下のコードを書いたのですが、これだと正常に終了しないです。
2
2
 
3
3
 
4
4
 
@@ -45,3 +45,47 @@
45
45
 
46
46
 
47
47
  ```
48
+
49
+
50
+
51
+ 結局のところ、katsukoさんのご回答のならって、以下のコードになりました。
52
+
53
+ でも、QMessageBoxって、QWidgetに配置できないんでしょか。。。
54
+
55
+
56
+
57
+ ```python
58
+
59
+ # coding: utf-8
60
+
61
+ # Here your code !
62
+
63
+
64
+
65
+ import sys
66
+
67
+ import PySide
68
+
69
+ from PySide import QtGui
70
+
71
+
72
+
73
+ if __name__ == '__main__':
74
+
75
+ app = QtGui.QApplication(sys.argv)
76
+
77
+
78
+
79
+ dlg = QtGui.QMessageBox()
80
+
81
+ dlg.setText("Hello World - using PySide version " + PySide.__version__)
82
+
83
+ dlg.exec_()
84
+
85
+
86
+
87
+ sys.exit(app.exec_())
88
+
89
+
90
+
91
+ ```

1

自己解決したと思ったコードでは、正常終了しないことが判明した

2016/10/27 15:46

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- 以下のソースコードに落ち着きま
1
+ 解決したと思って、以下のコードを書いたのですが、これだと正常終了ないですね
2
2
 
3
3
 
4
4