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

长沙网站优化电话凡客诚品官方网站首页

长沙网站优化电话,凡客诚品官方网站首页,响水网站建设服务商,微信推广文案一、自定义Widget组件 1、自定义Widget组件 使用步骤采用提升法#xff08;promotion#xff09;重新定义paintEvent事件 2、实现程序 #xff08;1#xff09;创建项目#xff0c;基于QWidget #xff08;2#xff09;添加类#xff0c;为Widget组件提升类 #inclu…一、自定义Widget组件 1、自定义Widget组件 使用步骤采用提升法promotion重新定义paintEvent事件 2、实现程序 1创建项目基于QWidget 2添加类为Widget组件提升类 #include battery.h #include QPainterint Battery::powerLevel() const {return mPowerLevel; }void Battery::setPowerLevel(int powerLevel) {mPowerLevel powerLevel;repaint(); }void Battery::paintEvent(QPaintEvent *event) {Q_UNUSED(event)QPainter painter(this);QRect rect(0, 0, width(), height());painter.setViewport(rect);painter.setWindow(0, 0, 120, 50); // 设置窗口逻辑坐标painter.setRenderHint(QPainter::Antialiasing);painter.setRenderHint(QPainter::TextAntialiasing);// 绘制电池边框QPen pen;pen.setWidth(2);pen.setColor(mColorBorder);pen.setStyle(Qt::SolidLine);pen.setCapStyle(Qt::FlatCap);pen.setJoinStyle(Qt::BevelJoin);painter.setPen(pen);QBrush brush;brush.setColor(mColorBack);brush.setStyle(Qt::SolidPattern);painter.setBrush(brush);rect.setRect(1, 1, 109, 48);painter.drawRect(rect);brush.setColor(mColorBorder);painter.setBrush(brush);rect.setRect(110, 15, 10, 20);painter.drawRect(rect);// 画电量if(mPowerLevel mWarning){brush.setColor(mColorWarning);pen.setColor(mColorWarning);}else{brush.setColor(mColorPower);pen.setColor(mColorPower);}painter.setBrush(brush);painter.setPen(pen);if(mPowerLevel 0){rect.setRect(5, 5, mPowerLevel, 40);painter.drawRect(rect);}// 绘制百分比文字QFontMetrics textSize(this-font());QString powerStr QString::asprintf(%d%%, mPowerLevel);QRect textRect textSize.boundingRect(powerStr);pen.setColor(mColorBorder);painter.setPen(pen);painter.drawText(55 - textRect.width() / 2, 23 textRect.height() / 2, powerStr);}Battery::Battery(QWidget *parent) : QWidget(parent) {} 3设置标题和图标图标需要选择资源中图标直接选择文件可能无效 4实现电池电量修改 #include widget.h #include ui_widget.h#include battery.hWidget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui-setupUi(this);ui-battery-setPowerLevel( ui-horizontalSlider-value() ); }Widget::~Widget() {delete ui; }void Widget::on_horizontalSlider_valueChanged(int value) {int nPower ui-horizontalSlider-value();ui-battery-setPowerLevel(nPower);ui-label-setText(QString::asprintf(当前电量: %d%%, nPower)); } 二、自定义QtDesigner插件 1、实现程序 1创建自定义控件工程 设置分组 2将生成的dll库拷贝到Tools\QtCreator\bin\plugins\designer下 3创建项目基于QWidget 在UI编辑界面组件栏可以看到多分组MyWidget下有了Battery组件。我没做出来始终是加载失败之后测试处理 初步分析似乎因为Qt IDE是由MSVC编译所以插件必须为MSVC编译本人使用MSVC2015 64bit测试没有加载成功之后测试32bit三、静态链接库 1、静态链接库的创建和使用 1创建静态链接库 MSVC编译器生成的库后缀为“.lib”MinGW编译器生成的库后缀为.a 2使用静态库 需要使用静态库文件和h文件不需要cpp文件2、实现程序 1创建Library项目 2使用图表中的一个窗口 3创建项目调用库 4添加库 5实现功能 #include mainwindow.h #include ui_mainwindow.h #include dialogpen.h#include QPaintervoid MainWindow::paintEvent(QPaintEvent *event) {Q_UNUSED(event)QPainter painter(this);QRect rect(0, 0, width(), height());painter.setViewport(rect);painter.setWindow(0, 0, 100, 50); // 逻辑坐标painter.setPen(mPen);painter.drawRect(10, 10, 80, 30); }MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this); }MainWindow::~MainWindow() {delete ui; }void MainWindow::on_actSetPen_triggered() {bool ok false;QPen pen DialogPen::getPen(mPen, ok);if(ok){mPen pen;repaint();} } 四、共享库动态链接库 1、动态库声明 1隐式加载 #if defined(DLL_LIBRARY) #define DLLSHARED_EXPORT Q_DECL_EXPORT #else #define DLLSHARED_EXPORT Q_DECL_IMPORT #endif2显示加载直接打开dll库直接解析调用函数 typedef int (*FunDef)(int);FunDef myFun (FunDef)myLib.resolve(funName); //解析dll函数 int n myFun(1); //调用函数2、实现隐式加载程序 1创建动态库工程 2导出动态库 class SHAREDLIBSHARED_EXPORT DialogPen : public QDialog3实现功能 #include mainwindow.h #include ui_mainwindow.h #include dialogpen.h#include QPaintervoid MainWindow::paintEvent(QPaintEvent *event) {Q_UNUSED(event)QPainter painter(this);QRect rect(0, 0, width(), height());painter.setViewport(rect);painter.setWindow(0, 0, 100, 50); // 逻辑坐标painter.setPen(mPen);painter.drawRect(10, 10, 80, 30); }MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this); }MainWindow::~MainWindow() {delete ui; }void MainWindow::on_actSetPen_triggered() {bool ok false;QPen pen DialogPen::getPen(mPen, ok);if(ok){mPen pen;repaint();} } 3、实现显式加载程序
http://www.zqtcl.cn/news/780764/

相关文章:

  • 四川内江网站建设太原网站建设网格未来
  • 陕西 网站建设 陕ICP创建商务站点的主要工作
  • 做照明出口的网站深圳 网站制作
  • 门户网站建设 简报嘉兴设计公司有哪些
  • 资阳房地产网站建设学校网站建设板块分析
  • 山东华邦建设网站首页wordpress h5自适应
  • 合肥市建设工程劳务分包合同备案表在哪个网站下载国际国内热点新闻事件
  • 临猗做网站怎么做挣钱的网站
  • 做软装找图片的网站wordpress 表单留言
  • 360网站挂马检测wordpress路径爆出
  • 有什么网站学做标书的专门做短视频的公司
  • 网站怎么做图片动态图片短视频推广
  • 海口的网站建设网页设计欣赏可爱风格
  • 高端网站设计哪个好五莲网站建设维护推广
  • 外贸网站 测速国内创意网页设计
  • 网站商城前台模板免费下载自己做网站统计
  • 十大免费货源网站免费版本厦门建网站多少钱
  • 网站建设投标书范本深圳网页设计培训多少钱
  • 动态ip可以做网站北京万户网络
  • 网址大全免费网站中国建设银行驻莫斯科网站
  • 网站建设 教材 推荐网站导入
  • 网站备案扫描智能软件开发就业前景
  • 快速网站建设费用口碑营销图片
  • wordpress地址和站点地址错天津seo诊断
  • 张云网站建设做谷歌推广比较好的公司
  • 电子商务网站建设与管理的论文题目智能自助建站系统源码
  • 个人网站建设价格网站做视频转流量
  • 点网站出图片怎么做深圳市中心在哪
  • 企业网站建设58同城网站优化排名软件哪些最好
  • 最专业企业营销型网站建设企业宣传海报设计制作