当前位置: 首页 > news >正文

医疗网站建设及优化方案企业的网站建设策划书

医疗网站建设及优化方案,企业的网站建设策划书,抖音代运营多少钱,2020国内搜索引擎排行榜【QT入门】Qt自定义控件与样式设计之控件提升与自定义控件 往期回顾 【QT入门】Qt自定义控件与样式设计之QProgressBar用法及qss-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QSlider用法及qss-CSDN博客 【QT入门】Qt自定义控件与样式设计之qss的加载方式-CSDN博客 一、最终…

【QT入门】Qt自定义控件与样式设计之控件提升与自定义控件

往期回顾

【QT入门】Qt自定义控件与样式设计之QProgressBar用法及qss-CSDN博客

【QT入门】 Qt自定义控件与样式设计之QSlider用法及qss-CSDN博客

【QT入门】Qt自定义控件与样式设计之qss的加载方式-CSDN博客

一、最终效果

通过提升QPushButton控件,并在提升后自定义其设计,我们就实现了图片+文字的按钮效果

二、什么是控件提升

控件提升相当于把控件编成另一个控件,或者说称为自定义控件,控件提升需要在Qt设计器里操作

因为所有的ui类其实都是继承于QWidget,也就意味着都可以看作是一个窗口,都可以进行设计,自定义控件的时候,注意找好其继承哪个类。

这个是一个很常见且常用的方法,因为实际开发的时候往往qt自带的控件是没法满足我们的需求的,此时基本都是需要我们去进行控件提升从而自定义控件来完成各种各样的设计。

三、示例实现

正如上面最终效果所示,我要在一个QPushButton里实现上面是图片,下面是文字的效果,其实用ToolButton是可以直接实现的,那我们就用QPushButton怎么做?

1、ui设计

第一个,可以在ui设计里,直接在QPushButton上下放两个label,一个放图片一个文字就实现了。

我们一直在强调,ui里所有控件的最终父控件都是Qwidget,也就是说,我们对于每一个控件其实都可以当作是一个widget进行设计。

2、提升控件后自定义

第二种方法就是,提升控件,去进行自定义,这样我们就可以自己写样式。

一定要理解提升控件并自定义的作用,就相当于是我们可以把任意控件提升为我们自定义的一个类,这样就可以把该控件当作一个全新的widget来用代码布局。

2.1、在ui界面提升控件

先在ui界面把QPushButton提升为CMyButton类,然后创建C++的类,名字就是CMyButton,继承自QPushButton类和QOBJEC类

新建CMyButton类 

class CMyButton : public QPushButton
{Q_OBJECTpublic:CMyButton(QWidget *parent);};
CMyButton::CMyButton(QWidget * parent):QPushButton(parent)
{}
2.2、在CMyButton类里做相应的代码设计 

注意类初始化的继承写法

要记得设置margins值为0,因为默认为1会有间隙

 CMyButton.h

class CMyButton : public QPushButton
{Q_OBJECTpublic:CMyButton(QWidget *parent);//自定义两个方法,分别用来放文件名和文字,注意跟qt自带的方法区分开void set_Icon(const QString& fileName);void set_Text(const QString& text);private://定义两个QLabel,一个放图片一个放文字QLabel *m_pIconLabel;QLabel *m_pTextLabel;
};

  CMyButton.cpp

CMyButton::CMyButton(QWidget * parent):QPushButton(parent)
{//设置按钮大小this->setFixedSize(64, 88);this->setText("");//上面的label设置大小放图片m_pIconLabel = new QLabel(this);m_pIconLabel->setFixedSize(64, 64);m_pIconLabel->setPixmap(QPixmap(":/resources/save.png"));//下面的label设置大小放文字m_pTextLabel = new QLabel(this);m_pTextLabel->setFixedSize(64, 24);m_pTextLabel->setText(u8"保存");//创建垂直布局放进去,设置margin为0//这一步比较关键,因为默认margin为11,不设置的话,就会有边框QVBoxLayout* pVlay = new QVBoxLayout(this);pVlay->addWidget(m_pIconLabel);//pVlay->addSpacing(5);pVlay->addWidget(m_pTextLabel);pVlay->setContentsMargins(0,0,0,0);
}//实现两个自定义方法
void CMyButton::set_Icon(const QString& fileName)
{}
void CMyButton::set_Text(const QString& text)
{m_pTextLabel->setText(text);
}

这样我们就实现了控件提升和自定义控件,用QPushButton设计出我们想要的图片+文字效果 

3、由于自定义控件的独立性,我们可以在旁边再放一个按钮用来进行信号槽连接 
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->pushButton->setText("");ui->pushButton->setFixedSize(64, 88);//旁边再放一个按钮实现信号槽连接//这里就用到了自定义的方法connect(ui->pushButton_2, &QPushButton::released, [=]{ui->pushButton->set_Text("保存");});connect(ui->pushButton_2, &QPushButton::pressed,[=]{ui->pushButton->set_Text("不保存");});
}

以上就是控件提升与自定义控件基本示例。

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!

http://www.yayakq.cn/news/304585/

相关文章:

  • 医药招商网站大全杭州网站建设制作公司
  • 江苏大都建设工程有限公司网站专业的网络整合营销推广
  • 比分网站仿站建设山西太原建设银行招聘网站
  • 11年始终专注营销型网站建设旅游网站的市场分析
  • 网站底部关键词hs网站推广
  • 网页设计与网站建设景点介绍网站租用一年服务器费用多少
  • 杭州人防质监站网址国内新闻最新消息
  • 网站搭建源码唐山市住房和城乡建设局官方网站
  • 做设计必须知道的几个网站吗今科网站建设
  • wordpress後台建站百度地图开发网站
  • 网站建设定义是什么意思科技公司建设网站
  • 利用网站做淘宝客wordpress本地迁移到服务器
  • 做淘宝客如何建立网站市场营销策划方案
  • 英文网站设计制作深圳高端集团网站建设公司
  • wordpress网站正在维护中那些网站后台做推广效果好
  • 做弹幕网站html网站模板免费下载
  • c#+开发网站开发lnmp wordpress 伪静态
  • 网站建设公司彩铃php开发网站的优势
  • 专业重庆房产网站建设天猫入驻条件及费用2023
  • 贸易公司网站设计案例个人做盈利网站
  • 个人网站做项目什么网站是html5做的
  • 网站建设费用如何做账wordpress 加载图片
  • 北京谷歌seo公司seo综合查询
  • 教育学校网站建设设计本和游戏本区别
  • 巴中微信开发 做网站网站服务器建设价格
  • 双流建设局网站渭南有几个县
  • html常用标签天津seo培训
  • 做网站简单吗东莞大岭山镇邮政编码
  • 做外贸网站外包昆明建站专家
  • 安居客网站是用什么程序做的wordpress企业产品列表