PyQt:左側タブ
13549 ワード
前に書く
pyqtで私たちの試合種目を書いているクライアントは、左側のタブに対して、簡単なdemoを書いています.記録しておきます.
環境
Python3.5.2
PyQt5
について述べる
左のQListWidget+右のQStackedWidgetを使用してQWebViewをQStackedWidgetに追加します(chartsを表示するために使用する予定なので、pyechartsで作ったデータを可視化し、生成したhtmlファイルをクライアント内に直接埋め込むので、QWebViewで表示します.pyechartsについては別の記事を見ることができますhttps://www.cnblogs.com/jyroy/p/9446486.html)
私はQSSを使ってQListWidgetの美化を行い、網易雲音楽のサイドバーのような形をしています.私はQSS Editorが書いたQSSを使っています(強くお勧めします.使いやすい!!)、pyコード、QSSコードと効果は以下の通りです.
詳細なコメントはコードを参照
pyコードは以下の通りです
QSSコードは以下の通り
効果の表示
あとに書く
デモを1つ書いただけなので、深く調整はしていませんが、主にサイドバーを展示していますので、ご了承ください~
交流を歓迎します!
pyqtで私たちの試合種目を書いているクライアントは、左側のタブに対して、簡単なdemoを書いています.記録しておきます.
環境
Python3.5.2
PyQt5
について述べる
左のQListWidget+右のQStackedWidgetを使用してQWebViewをQStackedWidgetに追加します(chartsを表示するために使用する予定なので、pyechartsで作ったデータを可視化し、生成したhtmlファイルをクライアント内に直接埋め込むので、QWebViewで表示します.pyechartsについては別の記事を見ることができますhttps://www.cnblogs.com/jyroy/p/9446486.html)
私はQSSを使ってQListWidgetの美化を行い、網易雲音楽のサイドバーのような形をしています.私はQSS Editorが書いたQSSを使っています(強くお勧めします.使いやすい!!)、pyコード、QSSコードと効果は以下の通りです.
詳細なコメントはコードを参照
pyコードは以下の通りです
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # Author: jyroy
4 import sys
5
6 from PyQt5.QtCore import QUrl
7 from PyQt5.QtWebKitWidgets import QWebView
8 from PyQt5.QtWidgets import QApplication
9 from PyQt5.QtWidgets import QListWidget,QStackedWidget
10 from PyQt5.QtWidgets import QListWidgetItem
11 from PyQt5.QtWidgets import QWidget
12 from PyQt5.QtWidgets import QHBoxLayout
13
14 from PyQt5.QtCore import QSize, Qt
15
16
17
18 class LeftTabWidget(QWidget):
19 ''' '''
20 def __init__(self):
21 super(LeftTabWidget, self).__init__()
22 self.setObjectName('LeftTabWidget')
23
24 self.setWindowTitle('LeftTabWidget')
25 with open('D:/python/code/qt/test/QSS/QListWidgetQSS.qss', 'r') as f: # QListWidget qss
26 self.list_style = f.read()
27
28 self.main_layout = QHBoxLayout(self, spacing=0) #
29 self.main_layout.setContentsMargins(0,0,0,0)
30
31 self.left_widget = QListWidget() #
32 self.left_widget.setStyleSheet(self.list_style)
33 self.main_layout.addWidget(self.left_widget)
34
35 self.right_widget = QStackedWidget()
36 self.main_layout.addWidget(self.right_widget)
37
38 self._setup_ui()
39
40 def _setup_ui(self):
41 ''' ui'''
42
43 self.left_widget.currentRowChanged.connect(self.right_widget.setCurrentIndex) #list index
44
45 self.left_widget.setFrameShape(QListWidget.NoFrame) #
46
47 self.left_widget.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) #
48 self.left_widget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
49
50 list_str = [' ',' ',' ',' ']
51 url_list = ['job_num_wordcloud.html', 'edu_need.html', 'salary_bar.html', 'edu_salary_bar.html']
52
53 for i in range(4):
54 self.item = QListWidgetItem(list_str[i],self.left_widget) #
55 self.item.setSizeHint(QSize(30,60))
56 self.item.setTextAlignment(Qt.AlignCenter) #
57
58 self.browser = QWebView() # QWebView html
59 self.browser.setUrl(QUrl.fromLocalFile('D://python//code//vision//%s' % url_list[i]))
60 self.right_widget.addWidget(self.browser)
61
62
63
64 def main():
65 ''' '''
66 app = QApplication(sys.argv)
67
68 main_wnd = LeftTabWidget()
69 main_wnd.show()
70
71 app.exec()
72
73 if __name__ == '__main__':
74 main()
QSSコードは以下の通り
1 QListWidget, QListView, QTreeWidget, QTreeView {
2 outline: 0px;
3 }
4
5 QListWidget {
6 min-width: 120px;
7 max-width: 120px;
8 color: Black;
9 background: #F5F5F5;
10 }
11
12 QListWidget::Item:selected {
13 background: lightGray;
14 border-left: 5px solid red;
15 }
16 HistoryPanel:hover {
17 background: rgb(52, 52, 52);
18 }
効果の表示
あとに書く
デモを1つ書いただけなので、深く調整はしていませんが、主にサイドバーを展示していますので、ご了承ください~
交流を歓迎します!