Qt 5界面修改无效的问题解决QtDesigner修改之后无效的解决办法

qt ui修改无效,qt Designer无用,qt Designer修改不起作用

第一篇,关于Qt Ui修改不起作的结局办法,我在网上找到的解决办法:

ui源文件到界面显示的原理可以网上搜索,这里不再描述。简单讲就是先要从.ui生成ui_.h然后再编译,所以界面未更新实际上是因为ui_*.h这个文件没有更新导致的。

根治的方法:

项目设置文件.pro内增加 UI_DIR=你的项目路径,同时删除掉源代码目录中ui_*.h,clear all,->qmake->rebuilt all(全部重新编译)

总结:导致ui_*.h文件没有更新的原因是源代码中#include ui_*.h的位置和实际生成的位置不同,引用的是老的ui_*.h,设置UI_DIR后就规定了位置于是不会出错了。


第二篇关于qt ui文件修改无效的解决办法:

误打误撞,我看到了某网友说到修改.pro文件,这下好了,灵机一动,我知道我问题出在哪了。
点击项目,后我发现我的构造目录不是原目录那个来的,我去啊。QT哥,你这不是坑爹么!!
这个坑会出现什么情况呢?

就是让哥的UI编译出来的H文件跑到别的地方去了。而.pro文件中定义的文件目录却是在原目录,这不是像新婚之夜洞错房么!解决QT中的UI修改后,程序UI依然是旧样
这样子好了!最起码有两个解决方案:

  • 1.改UI输出地址
    在.pro中,

    参照 HEADERS += src/QSerialPortTerminal/QSerialPortTerminal.h \  (UI头文件)
    加上UI_DIR=src/QSerialPortTerminal/ (红色部分是你的输出目录)
    这样改了之后,只要你每编译一次,QT就在你规定的文件目录自动生成你的ui头文件,直接提供给该程序使用了
    
  • 2.手动吧 哈哈

    找到自己重新编译的ui**.h头文件,手动覆盖以前旧的头文件吧
    
### 关于 PyQt5 Designer 中样式表无效问题 在使用 PyQt5Designer 工具时,如果发现样式表(Style Sheet)未能正常生效,可能涉及多个方面的原因。以下是可能导致该问题的因素以及对应的解决方案: #### 1. 样式表语法错误 确保所编写的样式表遵循 Qt Style Sheets 的语法规则[^1]。任何拼写错误或不支持的属性都可能导致整个样式表失效。 ```css /* 正确示例 */ QWidget { background-color: lightblue; } QPushButton:hover { color: white; } ``` #### 2. 文件转换过程中的丢失 当通过 `pyuic5` 将 `.ui` 文件转换为 Python 脚本时,可能会忽略某些自定义设置。因此,在运行以下命令后需验证生成的脚本是否保留了所有必要的配置[^2]。 ```bash pyuic5 -o output.py input.ui ``` 建议手动检查生成的 Python 文件中是否有加载样式的部分代码存在。 #### 3. 应用程序未正确应用全局样式 即使设置了局部控件的样式表,但如果应用程序层面有统一启用这些设定,则仍会表现为无效状态。可以通过下面的方式强制指定整体外观风格来测试效果如何变化: ```python from PyQt5.QtWidgets import QApplication, QMainWindow app = QApplication([]) style_sheet = """ QMainWindow { background-color: darkgray; } """ app.setStyleSheet(style_sheet) window = QMainWindow() window.show() app.exec_() ``` 上述例子展示了怎样在整个应用层面上施加特定主题颜色方案给主窗口组件[`QMainWindow`]实例对象上. #### 4. 控件继承关系影响 有时子控件不会自动继承父容器定义好的视觉特性。此时可以显式地针对每一个目标部件单独声明其专属规则集或者调整层级结构使之能够自然获取上级传递下来的格式特征. --- ### 提供一段综合处理逻辑作为示范参考 这里给出一个完整的案例演示如何在一个简单的 PyQT5 GUI 程序里成功运用 CSS 类型的美化装饰技术: ```python import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): # 创建按钮并绑定事件处理器函数 clickMethod 当被触发点击动作时候调用它. btn = QPushButton('Click Me', self) btn.clicked.connect(lambda:self.clickMethod()) # 设置固定大小尺寸规格单位像素数宽高各设成80px * 40 px . btn.resize(80,40) # 定位放置位置距离左边界起点坐标X轴方向偏移量Y轴垂直向上移动同样数值即位于屏幕中心区域附近展示出来. btn.move(50, 50) # 添加额外个性化定制化表现形式比如更改字体名称字号粗细程度等等... font = QFont("Times", 14 , QFont.Bold ) btn.setFont(font); # 利用字符串模板表达方式构建复杂多样的动态适应不同场景需求下的图形界面元素呈现模式。 styleSheetTemplate=""" QPushButton {{ border-radius:{radius}px ; padding-top :{paddingTopValue}em; margin-left:auto ;margin-right:auto ;height :auto;width : auto; min-width: {minWidthSize}ex;max-height:{maxHeightLimitation}% !important; }} QPushButton::hover{{background-image:url(:/icons/newPrefix/image.png);}} """ parametersDictionary={ 'radius':7, 'paddingTopValue':0.5 , 'minWidthSize':9 ,'maxHeightLimitation':60 } finalStyleSheet=styleSheetTemplate.format(**parametersDictionary) btn.setStyleSheet(finalStyleSheet) def main(): app = QApplication(sys.argv) ex =Example() ex.setGeometry(300, 300, 250, 150) ex.setWindowTitle('Styling Buttons') ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main() ``` 以上这段源码片段清楚表明了一个标准流程步骤从创建基本交互构件到赋予它们独特的外表特性的全过程^. ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值