• 7691阅读
  • 14回复

[提问]Qt怎么在自定义的按钮上写字? [复制链接]

上一主题 下一主题
离线kameshidai
 

只看楼主 倒序阅读 楼主  发表于: 2012-10-31
我试了 drawTest 不行...  
到底该怎么弄呢?

我是自定义的 继承的QPushButton

03.    QPushButton *pushButton= new QPushButton;  
05.    pushButton->setGeometry(10,10,200,200); //按钮的位置及大小  
06.    pushButton->clearMask();  
07.    pushButton->setBackgroundRole( QPalette::Base);  
09.    QPixmap mypixmap;   mypixmap.load(str);  
11.    pushButton->setFixedSize( mypixmap.width(), mypixmap.height() );  
12.    pushButton->setMask(mypixmap.createHeuristicMask());  
13.    pushButton->setIcon(mypixmap);  
14.    pushButton->setIconSize(QSize(mypixmap.width(),mypixmap.height()));  
15.    pushButton->setToolTip(str1);

和这个差不多一样.. 求大神!
离线roywillow

只看该作者 1楼 发表于: 2012-10-31
你怎么试的?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线benbenmajia

只看该作者 2楼 发表于: 2012-10-31
我怎么看不懂你要干什么?
安然.....
离线kameshidai

只看该作者 3楼 发表于: 2012-10-31
回 1楼(roywillow) 的帖子
darwText(10,10,str);
离线kameshidai

只看该作者 4楼 发表于: 2012-10-31
回 1楼(roywillow) 的帖子
能加下QQ问你么...  我有点混乱
离线kameshidai

只看该作者 5楼 发表于: 2012-10-31
回 2楼(benbenmajia) 的帖子
.............就是想在自定义的按钮上面加上文字
离线roywillow

只看该作者 6楼 发表于: 2012-10-31
回 5楼(kameshidai) 的帖子
说实话我更混乱
先学学怎么问问题吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线kameshidai

只看该作者 7楼 发表于: 2012-10-31
回 6楼(roywillow) 的帖子
就是

在自定义的按钮上边添加文字

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);
}

这是我的自定义代码

使用drawText无效
使用setText会在按钮旁边出现一个普通按钮
离线roywillow

只看该作者 8楼 发表于: 2012-10-31
回 7楼(kameshidai) 的帖子
我没看到drawText()和setText()两个函数啊, 你给我个构造函数有啥意义?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 9楼 发表于: 2012-10-31
自己画界面或者显示文本,统统的要重写那个控件的paintEvent,没有其它的办法。
实在不知到楼主要做什么。
就说要个什么东东就行了?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线kameshidai

只看该作者 10楼 发表于: 2012-10-31
回 9楼(jdwx) 的帖子
就是要一个载入图片的按钮
按钮上边动态的显示我传入的文字
离线jdwx

只看该作者 11楼 发表于: 2012-10-31
回 10楼(kameshidai) 的帖子
就需要俩函数:
button->setText("文字");//改变文字用
button->setIcon(QIcon("图片"));
调整图片大小
button->setIconSize(xxxw,xxxh);

发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线kameshidai

只看该作者 12楼 发表于: 2012-10-31
回 11楼(jdwx) 的帖子
我使用了,但是setText的时候,会在图片的右边,变小图片,加上一个普通的按钮...字就在普通按钮里面.
离线cool609

只看该作者 13楼 发表于: 2012-11-01
回 12楼(kameshidai) 的帖子
用paintEvent,drawText,drawPixmap,貌似QWidget有setFont,可以设置字体大小。
离线cool609

只看该作者 14楼 发表于: 2012-11-01

        if(m_img.width() > width() - 2 * m_nMargin || m_img.height() > height() - 2 * m_nMargin)
        {
            QImage oImage = m_img.scaled(width() - 2 * m_nMargin, height() - 2 * m_nMargin, Qt::KeepAspectRatio);
            oPainter.drawPixmap((width() - oImage.width()) / 2 , (height() - oImage.height()) / 2, oImage.width(), oImage.height(), QPixmap::fromImage(oImage));
        }
        else
        {
            oPainter.drawPixmap((width() - m_img.width()) / 2, (height() - m_img.height()) / 2, m_img.width(), m_img.height(), QPixmap::fromImage(m_img));
        }
    
快速回复
限100 字节
 
上一个 下一个