找回密码
 立即注册
收起左侧

新手关于QT重绘的问题

2
回复
7004
查看
[复制链接]
累计签到:1 天
连续签到:1 天
来源: 2016-11-4 15:02:36 显示全部楼层 |阅读模式
5Qter豆
1.关于setEnable,setDisable
我这边使用了setEnable/disable函数来使能/失能按钮,虽然按钮的确被使能/失能了,但是显示的时候还是之前的状态,比如明明被使能了还是灰色的,但是可以按
代码示例
一个按钮的clicked里
ui->testbutton->setEabled(true)
this->update();



2.关于system的调用
我现在在界面初始化和按下按钮的时候需要通过system调用一个需要时间比较长的命令
可是我想先更新界面再调用,可是运行效果是先调用后再更新,我又需要等待这个命令运行完再下一步不能开一个线程运行.
代码示例
ui->text->setText("正在运行")
this->update()
this->show()
system(命令)
ui->text->setText("运行完毕")
我希望是按下按钮开始界面显示正在运行然后执行命令完毕后显示运行完毕
可是现在变成按下按钮,界面卡死执行命令完毕后显示运行完毕


3.关于Qmessagebox的美化
messagebox里按钮的文字大小和尺寸要如何修改呢

回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-11-8 21:14:49 显示全部楼层
第二个,什么叫做
不能开一个线程运行.

QProcess可用吗?
回复

使用道具 举报

累计签到:31 天
连续签到:1 天
2016-11-9 21:38:40 显示全部楼层
本帖最后由 yanfk 于 2016-11-9 22:01 编辑

问题1:正常用法不会出现这种情况,与具体使用与有关,需要描述清楚使用环境。
问题2:在按钮点击事件中处理系统事件肯定卡UI,因为都是在主线程(UI)中执行,应该在点击事件中启动工作线程,工作线程中处理system,线程返回后,再更新Text。
问题3:QMessageBox并未提供修改按钮尺寸及其文本颜色的接口,需要自定义QMessageBox
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了