回答編集履歴
3
追記
answer
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
def quit(self):
|
60
60
|
# 項目を引き継ぎたい時とか Sqlite3でも可能
|
61
|
-
self.master.piyo_piyo("
|
61
|
+
self.master.piyo_piyo("piyo_piyo")
|
62
62
|
self.master.setCurrentIndex(0)
|
63
63
|
|
64
64
|
|
@@ -77,7 +77,7 @@
|
|
77
77
|
# タブパネルのボーダーを削除
|
78
78
|
self.setStyleSheet("QTabWidget::pane { border: 0; }")
|
79
79
|
# タブバーを非表示に(↓をコメントすると動きがわかりやすくなるかも)
|
80
|
-
|
80
|
+
self.tabBar().hide()
|
81
81
|
self.resize(500, 300)
|
82
82
|
self.move(100, 0)
|
83
83
|
|
2
追記
answer
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
class StartMenu(QWidget):
|
32
32
|
def __init__(self, parent):
|
33
33
|
super().__init__(parent)
|
34
|
-
self.parent
|
34
|
+
self.master = parent
|
35
35
|
self.button1 = QPushButton('Welcome', self)
|
36
36
|
self.button1.move(230, 120)
|
37
37
|
self.button1.clicked.connect(self.welcome)
|
@@ -41,12 +41,14 @@
|
|
41
41
|
|
42
42
|
def welcome(self):
|
43
43
|
# 0オリジン
|
44
|
-
self.
|
44
|
+
self.master.setCurrentIndex(1)
|
45
45
|
|
46
46
|
|
47
47
|
class WelcomeMenu(QWidget):
|
48
|
+
|
48
49
|
def __init__(self, parent):
|
49
50
|
super().__init__(parent)
|
51
|
+
self.master = parent
|
50
52
|
self.button2 = QPushButton('Hello', self)
|
51
53
|
self.button2.move(230, 120)
|
52
54
|
|
@@ -55,7 +57,9 @@
|
|
55
57
|
self.quitbutton2.clicked.connect(self.quit)
|
56
58
|
|
57
59
|
def quit(self):
|
60
|
+
# 項目を引き継ぎたい時とか Sqlite3でも可能
|
61
|
+
self.master.piyo_piyo("aaa")
|
58
|
-
self.
|
62
|
+
self.master.setCurrentIndex(0)
|
59
63
|
|
60
64
|
|
61
65
|
class App(QTabWidget):
|
@@ -66,18 +70,21 @@
|
|
66
70
|
self.tab1 = StartMenu(self)
|
67
71
|
self.tab2 = WelcomeMenu(self)
|
68
72
|
|
69
|
-
# タブページに
|
73
|
+
# タブページに追加
|
70
74
|
self.addTab(self.tab1, "StartMenu")
|
71
75
|
self.addTab(self.tab2, "WelcomeMenu")
|
72
76
|
|
73
77
|
# タブパネルのボーダーを削除
|
74
78
|
self.setStyleSheet("QTabWidget::pane { border: 0; }")
|
75
79
|
# タブバーを非表示に(↓をコメントすると動きがわかりやすくなるかも)
|
76
|
-
self.tabBar().hide()
|
80
|
+
#self.tabBar().hide()
|
77
81
|
self.resize(500, 300)
|
78
82
|
self.move(100, 0)
|
79
83
|
|
84
|
+
def piyo_piyo(self, text):
|
85
|
+
print(text)
|
80
86
|
|
87
|
+
|
81
88
|
def main():
|
82
89
|
app = QApplication(sys.argv)
|
83
90
|
ex1 = App()
|
1
追記
answer
CHANGED
@@ -7,18 +7,20 @@
|
|
7
7
|
|
8
8
|
この2行を入れれば表示されるようになります。
|
9
9
|
|
10
|
-
|
10
|
+
---
|
11
|
-
質問文のコードと回答文の書き方だと画面の項目が増えた時(大体20項目ぐらい)に全項目の表示/非表示を意識しないといけなくなるので管理しきれなくなります。
|
12
11
|
|
12
|
+
ここからは提案です。
|
13
|
+
質問文のコードと回答文の書き方だと画面の項目が増えた時(大体20項目ぐらいでしょうか)に全項目の表示/非表示の状態をプログラマが意識しないといけないので管理しきれなくなります。
|
14
|
+
|
13
15
|
一般的なGUIアプリケーションはフレーム(Frame)やウィンドウ(Window)という概念があります。
|
14
|
-
アプリの中に
|
16
|
+
アプリの中にウィンドウがあり、その中に子ウィンドウがある
|
15
17
|
|
16
18
|

|
17
19
|
|
18
|
-
今回の場合は`QTabWidget`を使った画面の切り替えサンプルコードを参考資料として投稿し
|
20
|
+
今回の場合は`QTabWidget`を使った、メニュー画面の切り替えのサンプルコードを参考資料として投稿します。
|
19
|
-
画面の項目に対
|
21
|
+
画面の項目に対する`hide`処理が存在しないので、質問文のようなトラブルが原理上発生しえません。
|
20
|
-
ご参考まで
|
21
22
|
|
23
|
+
|
22
24
|
```Python
|
23
25
|
# -*- coding: utf-8 -*-
|
24
26
|
import sys
|
@@ -60,16 +62,17 @@
|
|
60
62
|
def __init__(self):
|
61
63
|
super().__init__()
|
62
64
|
self.setWindowTitle("Hello")
|
65
|
+
# 1個1個のタブがメニューに対応
|
63
66
|
self.tab1 = StartMenu(self)
|
64
67
|
self.tab2 = WelcomeMenu(self)
|
65
68
|
|
66
|
-
#
|
69
|
+
# タブページにメニューを追加
|
67
|
-
self.addTab(self.tab1, "")
|
70
|
+
self.addTab(self.tab1, "StartMenu")
|
68
|
-
self.addTab(self.tab2, "")
|
71
|
+
self.addTab(self.tab2, "WelcomeMenu")
|
69
72
|
|
70
73
|
# タブパネルのボーダーを削除
|
71
74
|
self.setStyleSheet("QTabWidget::pane { border: 0; }")
|
72
|
-
# タブバーを非表示に
|
75
|
+
# タブバーを非表示に(↓をコメントすると動きがわかりやすくなるかも)
|
73
76
|
self.tabBar().hide()
|
74
77
|
self.resize(500, 300)
|
75
78
|
self.move(100, 0)
|