想问一下大家,现在QT界面编程中怎么把界面做的好看一点?就比如这个界面,这些按钮的效果是用的什么技术

html-css010

想问一下大家,现在QT界面编程中怎么把界面做的好看一点?就比如这个界面,这些按钮的效果是用的什么技术,第1张

这个一般人都会靠重载控件的paint函数来做.让按钮背景透明,失去按钮原来方方正正的边框然后在上面贴一个好看的按钮图片.相应按钮不同状态做不同的处理.(比如按下的时候让按钮颜色表按之类的)但是工作量,就是一个大啊.重载一两个控件还行.

Qt里面还可以用(视图,场景,模型)QGraphicsView,QGraphicsIitem.等等这一系列的类来开发不规则控件.用起来比较灵活.听说Qt Demo 就是用这个框架来开发的.

一个书上说比较好用的方法就是用QStyle来写界面的风格,不过对个人能力的要求还是比较搞的.搞过一两次,觉得是挺好用.比起上两个来说工作量小很多.但是要了解QStyle的用法....老实说这个东西实在很难.

另外你还可以用qss来搞.一种Qt中使用的css,虽然官方一直说是参考css搞出来的东西.但我怎么看都是一个样....

用代码搞了那么久的Qt界面美化.一直到qml出现了.我爱死他了.如果你一定要搞的话我建议你用qml来搞.那就是一个给力.就是有一点,现在qml的资料少得可怜...

最后.如果你是初学者的话最好不要去硬搞界面美化这一块....很伤的...到后面你会慢慢明白搞界面美化不是一个人可以做的事.你至少需要一个美工吧....呵呵呵呵....上述一切均为个人意见.仅供参考.....

Qt4版本以上可在构造函数中加入如下代码

RcMainWindow::RcMainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::RcMainWindow)

{

ui->setupUi(this)

QPixmap pixmap(":/img/background.bmp")

QPalette palette

palette.setBrush(backgroundRole(), QBrush(pixmap))

setPalette(palette)

}

此外也可实现继承自父类QMainWindow的虚函数paintEvent,并在该函数中加入同样代码。