qtwidget鼠标放上去浮现button

qtwidget鼠标放上去浮现button,第1张

在Qt Designer中,你需要在QWidget上添加一个QPushButton,然后将它的Visible属性设置为false。然后在QWidget上添加一个QEventFilter,并在其中实现enterEvent函数,在该函数中将QPushButton的Visible属性设置为true。

enterEvent函数如下:

void MyWidget::enterEvent(QEvent *event)

{

ui->pushButton->setVisible(true)

QWidget::enterEvent(event)

}

QtButton自动生成槽函数命名功能可以大大简化与节省开发时间,并帮助开发者实现最佳的编程效率。主要有以下几个步骤:

1. 打开Qt Creator编辑器,单击“编辑”选项卡,打开“代码生成器”工具。

2. 在“代码生成器”对话框中,单击“添加按钮”按钮,选择需要添加的Qt Button对象,并确定按钮的ID和大小。

3. 点击“添加槽函数名称”按钮,在完成槽函数名称列表中,选择“自动生成”选项,系统会根据之前设定的Qt Button ID自动生成其对应槽函数名称。

4. 根据需求,可以在槽函数名称列表上,手动输入自定义槽函数名称;也可以点击“编辑”按钮,编辑已输入的槽函数名称。

5. 在所有的槽函数名称设定完成后,单击“确定”按钮,即可完成Qt Button自动生成槽函数名称的设定。系统会自动为Qt Button添加对应的槽函数,以完成按钮的 *** 作功能。

最近看到很多项目界面设计的很有个性,突破qt的原先风格。

才知道button和label可以自由设计形状。

举例:如何改变qt的button规则呢

Qt中有两种方法来实现不规则形状的窗口

可以设置QWidget的窗口属性Qt::WA_TranslucentBackground为true来实现。但是利用这个属性有很大的限制。在window平台下,你必须设置Qt::FramelessWindowHint属性为true,设置窗口为一个没有标题栏的窗口。在X11平台下,你还要依靠 a compositing window manager.局限很多 。

利用setMask()函数来实现, void QWidget::setMask ( const QRegion &region ) 可以使得仅和region重叠的区域可见。但是,如果这个区域包括widget的rect()以外的像素,窗口控制的这个区域可见不可见,将取决于具体的平台。 所以,如果获得这个不规则的区域,然后在resizeEvent函数中调用这个函数,就可以获得一个不规则的形状的窗口。

qt的帮助文档上写到:

QPixmap pixmapLeft(":/MainWindow/Resources/Images/TestLeft.png")

ui.btnLeft->setMask(pixmapLeft.mask())

QPixmap pixmapRight(":/MainWindow/Resources/Images/TestRight.png")

ui.btnRight->setMask(pixmapRight.mask())

QLabel topLevelLabel

QPixmap pixmap(":/images/tux.png")

topLevelLabel.setPixmap(pixmap)

topLevelLabel.setMask(pixmap.mask())

先通过pix的方法获得图片的过滤掉透明的部分得到的图片,作为button和label的不规则边框。

所以只需要在ps里画一个含有透明部分的图片,保存成png格式,然后用它来setMask你的按钮和文本标签。

最后软件运行后,按钮效果,只有不透明的地方,才有点击效果。透明的地方看不到按钮。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7933222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存