qtdesign 样式会影响到其他控件_pyqt5 qtdesigner设计好的UI界面 增加底部布局之后全部控件集合在了左上角...

没有加底部布局之前如图:

bVbH3fI

加了底部布局之后:

bVbH3fF

代码如图:

main.js封装:

import sys

from PyQt5.QtWidgets import QMainWindow, QApplication

from Ui_MainWindow import *

class Demo(QMainWindow, Ui_MainWindow):

def __init__(self):

super(Demo, self).__init__()

# 将UI界面布局到Demo上;

self.setupUi(self)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

部分UI转换成的py代码:

class Ui_MainWindow(object):

def setupUi(self, MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.resize(942, 666)

# 定义的底层栅格布局

self.gridLayout_main = QtWidgets.QGridLayout(MainWindow)

self.gridLayout_main.setContentsMargins(15, -1, -1, -1)

self.gridLayout_main.setVerticalSpacing(20)

self.gridLayout_main.setObjectName("gridLayout_main")

# 子布局之一

self.gridLayout_3 = QtWidgets.QGridLayout()

self.gridLayout_3.setObjectName("gridLayout_3")

self.verticalLayout_4 = QtWidgets.QVBoxLayout()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5中,子线程不能直接访问UI控件,因为PyQt5只能在主线程中更新UI。但您可以通过信号和槽机制在主线程和子线程之间进行通信。 以下是一个例子,演示了如何在子线程中获取窗口控件的内容并将其发送到主线程: ```python from PyQt5.QtCore import QThread, pyqtSignal from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QPushButton, QLabel import sys class Worker(QThread): finished = pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent) def run(self): # 在这里调用子线程需要执行的任务,例如获取窗口控件内容 content = "子线程获取到的内容" self.finished.emit(content) class Window(QWidget): def __init__(self, parent=None): super().__init__(parent) self.resize(400, 300) self.lineEdit = QLineEdit() self.pushButton = QPushButton("获取内容") self.label = QLabel() layout = QVBoxLayout(self) layout.addWidget(self.lineEdit) layout.addWidget(self.pushButton) layout.addWidget(self.label) self.pushButton.clicked.connect(self.start_worker) self.worker = Worker() self.worker.finished.connect(self.update_label) def start_worker(self): self.worker.start() def update_label(self, content): self.label.setText(content) if __name__ == '__main__': app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) ``` 在这个例子中,我们创建了一个`Worker`类,它继承自`QThread`类,并包含一个`finished`信号。在`run`方法中,我们可以执行子线程需要执行的任务,例如获取窗口控件内容,并通过`finished`信号将结果发送到主线程。 在`Window`类中,我们创建了一个`Worker`实例,并将其`finished`信号连接到`update_label`方法。在`start_worker`方法中,我们启动子线程。当子线程完成并发出`finished`信号时,`update_label`方法将被调用,主线程中的标签控件将更新为子线程获取到的内容。 您可以根据您的具体需求修改代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值