回答編集履歴

3

追記

2018/08/19 08:09

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -118,7 +118,7 @@
118
118
 
119
119
  # 項目を引き継ぎたい時とか Sqlite3でも可能
120
120
 
121
- self.master.piyo_piyo("aaa")
121
+ self.master.piyo_piyo("piyo_piyo")
122
122
 
123
123
  self.master.setCurrentIndex(0)
124
124
 
@@ -156,7 +156,7 @@
156
156
 
157
157
  # タブバーを非表示に(↓をコメントすると動きがわかりやすくなるかも)
158
158
 
159
- #self.tabBar().hide()
159
+ self.tabBar().hide()
160
160
 
161
161
  self.resize(500, 300)
162
162
 

2

追記

2018/08/19 08:09

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
  super().__init__(parent)
66
66
 
67
- self.parent()
67
+ self.master = parent
68
68
 
69
69
  self.button1 = QPushButton('Welcome', self)
70
70
 
@@ -84,7 +84,7 @@
84
84
 
85
85
  # 0オリジン
86
86
 
87
- self.parent().setCurrentIndex(1)
87
+ self.master.setCurrentIndex(1)
88
88
 
89
89
 
90
90
 
@@ -92,9 +92,13 @@
92
92
 
93
93
  class WelcomeMenu(QWidget):
94
94
 
95
+
96
+
95
97
  def __init__(self, parent):
96
98
 
97
99
  super().__init__(parent)
100
+
101
+ self.master = parent
98
102
 
99
103
  self.button2 = QPushButton('Hello', self)
100
104
 
@@ -112,7 +116,11 @@
112
116
 
113
117
  def quit(self):
114
118
 
119
+ # 項目を引き継ぎたい時とか Sqlite3でも可能
120
+
121
+ self.master.piyo_piyo("aaa")
122
+
115
- self.parent().setCurrentIndex(0)
123
+ self.master.setCurrentIndex(0)
116
124
 
117
125
 
118
126
 
@@ -134,7 +142,7 @@
134
142
 
135
143
 
136
144
 
137
- # タブページにメニューを追加
145
+ # タブページに追加
138
146
 
139
147
  self.addTab(self.tab1, "StartMenu")
140
148
 
@@ -148,11 +156,17 @@
148
156
 
149
157
  # タブバーを非表示に(↓をコメントすると動きがわかりやすくなるかも)
150
158
 
151
- self.tabBar().hide()
159
+ #self.tabBar().hide()
152
160
 
153
161
  self.resize(500, 300)
154
162
 
155
163
  self.move(100, 0)
164
+
165
+
166
+
167
+ def piyo_piyo(self, text):
168
+
169
+ print(text)
156
170
 
157
171
 
158
172
 

1

追記

2018/08/19 08:08

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -16,15 +16,19 @@
16
16
 
17
17
 
18
18
 
19
- ここからは提案というか一般的な画面があるアプリケーションの話です。
19
+ ---
20
20
 
21
+
22
+
23
+ ここからは提案です。
24
+
21
- 質問文のコードと回答文の書き方だと画面の項目が増えた時(大体20項目ぐらい)に全項目の表示/非表示を意識しないといけなくなるので管理しきれなくなります。
25
+ 質問文のコードと回答文の書き方だと画面の項目が増えた時(大体20項目ぐらいでしょうか)に全項目の表示/非表示の状態プログラマが意識しないといけなので管理しきれなくなります。
22
26
 
23
27
 
24
28
 
25
29
  一般的なGUIアプリケーションはフレーム(Frame)やウィンドウ(Window)という概念があります。
26
30
 
27
- アプリの中に親画面があり、小画面の中にウィンドウがあり、ウィンドウを表示
31
+ アプリの中にウィンドウがあり、の中にウィンドウがあ
28
32
 
29
33
 
30
34
 
@@ -32,11 +36,11 @@
32
36
 
33
37
 
34
38
 
35
- 今回の場合は`QTabWidget`を使った画面の切り替えサンプルコードを参考資料として投稿しておきます。
39
+ 今回の場合は`QTabWidget`を使った、メニュー画面の切り替えサンプルコードを参考資料として投稿します。
36
40
 
37
- 画面の項目に対して、hideしていないので、質問文のようなトラブルが原理上発生しえません。
41
+ 画面の項目に対する`hide`処理が存在しないので、質問文のようなトラブルが原理上発生しえません。
38
42
 
39
- ご参考まで
43
+
40
44
 
41
45
 
42
46
 
@@ -122,17 +126,19 @@
122
126
 
123
127
  self.setWindowTitle("Hello")
124
128
 
129
+ # 1個1個のタブがメニューに対応
130
+
125
131
  self.tab1 = StartMenu(self)
126
132
 
127
133
  self.tab2 = WelcomeMenu(self)
128
134
 
129
135
 
130
136
 
131
- # Add tabs
137
+ # タブページにメニューを追加
132
138
 
133
- self.addTab(self.tab1, "")
139
+ self.addTab(self.tab1, "StartMenu")
134
140
 
135
- self.addTab(self.tab2, "")
141
+ self.addTab(self.tab2, "WelcomeMenu")
136
142
 
137
143
 
138
144
 
@@ -140,7 +146,7 @@
140
146
 
141
147
  self.setStyleSheet("QTabWidget::pane { border: 0; }")
142
148
 
143
- # タブバーを非表示に
149
+ # タブバーを非表示に(↓をコメントすると動きがわかりやすくなるかも)
144
150
 
145
151
  self.tabBar().hide()
146
152