QProxyStyle
This commit is contained in:
parent
151ba3f2d6
commit
d3a08fe16e
8 changed files with 101 additions and 1 deletions
|
@ -1,5 +1,7 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
encoding//QAxWidget/\u663E\u793Aword_excel_pdf.py=utf-8
|
encoding//QAxWidget/\u663E\u793Aword_excel_pdf.py=utf-8
|
||||||
|
encoding//QProxyStyle/Lib/TabBarStyle.py=utf-8
|
||||||
|
encoding//QProxyStyle/TabTextDirection.py=utf-8
|
||||||
encoding//QTableView/CopyContent/CopyContent.py=utf-8
|
encoding//QTableView/CopyContent/CopyContent.py=utf-8
|
||||||
encoding//QTableView/CopyContent/__main__.py=utf-8
|
encoding//QTableView/CopyContent/__main__.py=utf-8
|
||||||
encoding//QTableWidget/SqlQuery/SqlQuery.py=utf-8
|
encoding//QTableWidget/SqlQuery/SqlQuery.py=utf-8
|
||||||
|
|
36
QProxyStyle/Lib/TabBarStyle.py
Normal file
36
QProxyStyle/Lib/TabBarStyle.py
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Created on 2018年12月27日
|
||||||
|
@author: Irony
|
||||||
|
@site: https://pyqt5.com https://github.com/892768447
|
||||||
|
@email: 892768447@qq.com
|
||||||
|
@file: TabBarStyle
|
||||||
|
@description:
|
||||||
|
"""
|
||||||
|
from PyQt5.QtCore import Qt
|
||||||
|
from PyQt5.QtWidgets import QProxyStyle
|
||||||
|
|
||||||
|
|
||||||
|
__Author__ = """By: Irony
|
||||||
|
QQ: 892768447
|
||||||
|
Email: 892768447@qq.com"""
|
||||||
|
__Copyright__ = "Copyright (c) 2018 Irony"
|
||||||
|
__Version__ = "Version 1.0"
|
||||||
|
|
||||||
|
|
||||||
|
class TabBarStyle(QProxyStyle):
|
||||||
|
|
||||||
|
def sizeFromContents(self, types, option, size, widget):
|
||||||
|
size = super(TabBarStyle, self).sizeFromContents(
|
||||||
|
types, option, size, widget)
|
||||||
|
if types == self.CT_TabBarTab:
|
||||||
|
size.transpose()
|
||||||
|
return size
|
||||||
|
|
||||||
|
def drawControl(self, element, option, painter, widget):
|
||||||
|
if element == self.CE_TabBarTabLabel:
|
||||||
|
painter.drawText(option.rect, Qt.AlignCenter, option.text)
|
||||||
|
return
|
||||||
|
super(TabBarStyle, self).drawControl(element, option, painter, widget)
|
0
QProxyStyle/Lib/__init__.py
Normal file
0
QProxyStyle/Lib/__init__.py
Normal file
0
QProxyStyle/README.en.md
Normal file
0
QProxyStyle/README.en.md
Normal file
10
QProxyStyle/README.md
Normal file
10
QProxyStyle/README.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# QProxyStyle
|
||||||
|
|
||||||
|
## 1、QTabWidget Tab文字方向
|
||||||
|
[运行 TabTextDirection.py](TabTextDirection.py)
|
||||||
|
|
||||||
|
1. 通过 `app.setStyle(TabBarStyle())` 设置代理样式
|
||||||
|
2. `sizeFromContents` 转置size
|
||||||
|
3. `drawControl` 绘制文字
|
||||||
|
|
||||||
|
![TabTextDirection](ScreenShot/TabTextDirection.png)
|
BIN
QProxyStyle/ScreenShot/TabTextDirection.png
Normal file
BIN
QProxyStyle/ScreenShot/TabTextDirection.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.6 KiB |
51
QProxyStyle/TabTextDirection.py
Normal file
51
QProxyStyle/TabTextDirection.py
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Created on 2018年12月27日
|
||||||
|
@author: Irony
|
||||||
|
@site: https://pyqt5.com https://github.com/892768447
|
||||||
|
@email: 892768447@qq.com
|
||||||
|
@file: TestTabWidget
|
||||||
|
@description:
|
||||||
|
"""
|
||||||
|
from PyQt5.QtWidgets import QTabWidget, QLabel, QWidget, QGridLayout
|
||||||
|
|
||||||
|
from Lib.TabBarStyle import TabBarStyle
|
||||||
|
|
||||||
|
|
||||||
|
__Author__ = """By: Irony
|
||||||
|
QQ: 892768447
|
||||||
|
Email: 892768447@qq.com"""
|
||||||
|
__Copyright__ = "Copyright (c) 2018 Irony"
|
||||||
|
__Version__ = "Version 1.0"
|
||||||
|
|
||||||
|
|
||||||
|
class TabWidget(QTabWidget):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(TabWidget, self).__init__(*args, **kwargs)
|
||||||
|
for i in range(10):
|
||||||
|
self.addTab(QLabel('Tab' + str(i)), str(i))
|
||||||
|
|
||||||
|
|
||||||
|
class Window(QWidget):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(Window, self).__init__(*args, **kwargs)
|
||||||
|
layout = QGridLayout(self)
|
||||||
|
|
||||||
|
layout.addWidget(TabWidget(self, tabPosition=TabWidget.North), 0, 1)
|
||||||
|
layout.addWidget(TabWidget(self, tabPosition=TabWidget.South), 2, 1)
|
||||||
|
layout.addWidget(TabWidget(self, tabPosition=TabWidget.West), 1, 0)
|
||||||
|
layout.addWidget(TabWidget(self, tabPosition=TabWidget.East), 1, 2)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys
|
||||||
|
from PyQt5.QtWidgets import QApplication
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
app.setStyle(TabBarStyle())
|
||||||
|
w = Window()
|
||||||
|
w.show()
|
||||||
|
sys.exit(app.exec_())
|
|
@ -6,7 +6,7 @@ https://pyqt5.com 社区是专门针对PyQt5学习和提升开设的博客网站
|
||||||
|
|
||||||
## 目录
|
## 目录
|
||||||
|
|
||||||
| | |
|
| 分类 | 控件名 |
|
||||||
|:-------|:-------|
|
|:-------|:-------|
|
||||||
| ActiveX | [QAxWidget](QAxWidget)
|
| ActiveX | [QAxWidget](QAxWidget)
|
||||||
| 日历 | [QCalendarWidget](QCalendarWidget)
|
| 日历 | [QCalendarWidget](QCalendarWidget)
|
||||||
|
@ -36,6 +36,7 @@ https://pyqt5.com 社区是专门针对PyQt5学习和提升开设的博客网站
|
||||||
| OpenGL | [QOpenGLWidget](QOpenGLWidget)
|
| OpenGL | [QOpenGLWidget](QOpenGLWidget)
|
||||||
| 纯文本 | [QPlainTextEdit](QPlainTextEdit)
|
| 纯文本 | [QPlainTextEdit](QPlainTextEdit)
|
||||||
| 进度条 | [QProgressBar](QProgressBar)
|
| 进度条 | [QProgressBar](QProgressBar)
|
||||||
|
| 代理样式 | [QProxyStyle](QProxyStyle)
|
||||||
| 按钮 | [QPushButton](QPushButton)
|
| 按钮 | [QPushButton](QPushButton)
|
||||||
| 单选框 | [QRadioButton](QRadioButton)
|
| 单选框 | [QRadioButton](QRadioButton)
|
||||||
| 滚动区 | [QScrollArea](QScrollArea)
|
| 滚动区 | [QScrollArea](QScrollArea)
|
||||||
|
|
Loading…
Reference in a new issue