读书人

Qt 自定义按钮如何显示文字

发布时间: 2012-12-16 12:02:32 作者: rapoo

Qt 自定义按钮怎么显示文字

Genre::Genre(const QString & text, QWidget *parent)
:QPushButton(text,parent)
{
this->setIcon(QIcon("Image/Gen_Button.png"));
this->setIconSize(QSize(94, 31));
this->setMask(QBitmap("Image/Gen_Button_B.png"));
this->setFixedSize(94, 31);
this->setFocusPolicy(Qt::NoFocus);
}


以上是构造函数。。
我试了很多,有得添加进去以后文字会显示一些出来。
我只是想文字就显示在Button的上面
怎弄啊~?

谢谢了
[最优解释]
不过如果每一个pushbutton都设置一个背景的话,建议用paintEvent,因为setstylesheet在随着按钮不断增多时,效率明显下降很严重。没有paintEvent的效率高,你可以试一下
[其他解释]

#include <QApplication>
#include <QPushButton>

int main(int argc,char **argv)
{

QApplication app(argc,argv);

QPushButton *button = new QPushButton;

button->setText("ok");

button->show();

return app.exec();
}



我这边测试是好的。

[其他解释]
使用 setStyleSheet(QString("QPushButton{border-image: url(:/Image/Gen_Button.png);}
QPushButton:pressed{border-image:
url(:/Image/Gen_Button_B.png);}"))

在使用
setText();
这样文字和你的背景都有了。
如果要用代码写,上百度很多的

[其他解释]
求帮助啊~~
[其他解释]
setMask是设置整个的button的mask....所以你要想想你的mask应该如何设置哈。

为啥你这里面没有调setText(text)....
[其他解释]
用setText(QString)
[其他解释]
文档里面有
voidsetText ( const QString & text )

下次可以先在Qt 助手里面找找
[其他解释]
setText 会在旁边加一个普通按钮... 不是在 这个图片上面显示..
[其他解释]
用settext或是qtdesigner的property设置
[其他解释]
我不是要这个... 这个肯定是可以的 但是载入的图片没有了啊~

我看了一下 要 paintEvent 重载好像才可以
[其他解释]
重载paintEvent 在其中绘制文本和图片
[其他解释]
肯定有setText()的
[其他解释]
重载paintEvent,然后用drawPixmap画个背景图,再用drawText写个文本应该就可以了
[其他解释]
setText() 可以

读书人网 >QT开发

热点推荐