python - 当 QProgressBar 存在时如何居中对齐 QPushButton?
问题描述
我试图将 a 放在 aQProgressBar
下面QPushButton
并将它们对齐在 a 的中心QVBoxLayout
,但由于某种原因,当进度条存在时按钮保持左对齐,如果不存在则居中对齐。
我尝试将所有父小部件和布局的对齐方式设置为Qt.AlignCenter
,但进度条一直使按钮向左移动。
connect_box = QVBoxLayout()
connect_box.setAlignment(Qt.AlignCenter)
connect_button = QPushButton('Connect')
connect_button.setFixedSize(120, 30)
connect_progress = QProgressBar()
connect_progress.setRange(0, 10000)
connect_progress.setValue(0)
connect_box.addWidget(connect_button)
connect_box.addWidget(connect_progress)
connect_box.setContentsMargins(0, 20, 0, 0)
我希望按钮在添加进度条时保持居中对齐。
解决方案
尝试一下:
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class MyWidget(QWidget):
def __init__(self):
super().__init__()
connect_button = QPushButton('Connect')
connect_button.setFixedSize(120, 30)
connect_progress = QProgressBar()
connect_progress.setRange(0, 10000)
connect_progress.setValue(0)
connect_box = QVBoxLayout(self)
connect_box.setAlignment(Qt.AlignCenter)
connect_box.addWidget(connect_button, alignment=Qt.AlignCenter) # < ----
connect_box.addWidget(connect_progress)
connect_box.setContentsMargins(0, 20, 0, 0)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.show()
sys.exit(app.exec_())
推荐阅读
- jquery - 索引页面未显示 DataTable
- php - 在 Woocommerce 订单编辑页面中替换 BACS 付款方式的特定单词
- postgresql - 如果我将某些表的 autovacuum 比例因子设置为零,是否会对 DB 产生不利影响?
- java - 将当前请求中的所有标头放在 Spring 中的其他请求中
- r - Geom Bar Plot,计数总和不可见
- class - pytest 与类 python
- c++ - Dragino LG01-S 收到异常数据包并停止工作
- reporting-services - 从水晶报表 cstr 格式到 ssrs 表达式
- azure - ARM 模板可选参数
- babeljs - Babel 7 模块 UMD - 为什么 transpeiler 以小写形式定义全局项目以及如何避免它?