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

黄冈网站建设 网络推广网站站做地图软件

黄冈网站建设 网络推广,网站站做地图软件,互联网营销师培训机构,开发门户网站多少钱效果#xff1a; 点击 “移动” 图片向右移动20#xff0c;点击 “西理win嘛” 图片每秒向右移动20 QQ录屏20231212164128 下面时代码详解#xff1a; 注意使用UI和代码实现按钮的不同 UI: ui-pushButton-setGeometry(windowWidth-105, windowHeight-25, 100, 20);…效果 点击 “移动” 图片向右移动20点击 “西理win嘛” 图片每秒向右移动20 QQ录屏20231212164128 下面时代码详解 注意使用UI和代码实现按钮的不同 UI: ui-pushButton-setGeometry(windowWidth-105, windowHeight-25, 100, 20);使用ui的话,引用按钮变量名字时要在前面  ui- 代码 // QPushButton *pushButton2 new QPushButton(西理win, this);pushButton2 new QPushButton(西理win, this) ;为了使按钮保持在屏幕的右下角不受窗口大小的影响你可以在 Widget 构造函数中设置按钮的固定位置。在 QPushButton 的 setGeometry 函数中将按钮的位置固定在右下角。 如果你希望在窗口大小变化时更新按钮的位置你需要在窗口大小变化事件中处理按钮的位置。在 Qt 中可以通过重新实现 resizeEvent 函数来捕捉窗口大小变化事件。 在Qt中你可以使用 mapTo 和 mapFrom 系列函数来获取控件在窗口中的坐标。 这里mapTo 函数将按钮的相对坐标 (0, 0) 映射到窗口坐标系中然后通过 x() 和 y() 函数获取相应的坐标。 widget.h #ifndef WIDGET_H #define WIDGET_H#include QWidget #include QPushButtonnamespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent 0);~Widget();//绘图事件void paintEvent(QPaintEvent *);void resizeEvent(QResizeEvent *);int posX 0;int id1; //定时器1的唯一标示QPushButton *pushButton2;private:Ui::Widget *ui; };#endif // WIDGET_Hwidget.cpp #include widget.h #include ui_widget.h #include QPainter #include QPushButton #include QWidget #include QDebug #include QResizeEvent #include QTimer //定时器类 //#include QCursor //#include QMouseEvent //#include QGuiApplication //#include QScreen Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui-setupUi(this);this-setWindowTitle(lddbh); // this-setFixedSize(600,400);/“移动”按钮的设置以及连接///// ui-pushButton-move(10,10);//点击移动按钮移动图片connect(ui-pushButton,QPushButton::clicked,[](){posX20;//如果要手动调用绘图事件 用update更新update();});/“西理win按钮的设置以及连接”/////定时器第二种方式QTimer * timer new QTimer(this);//启动定时器timer-start(1000);// QPushButton * btn new QPushButton; // //btn-show(); //show以顶层方式弹出窗口控件 // //让btn对象 依赖在 myWidget窗口中 // btn-setParent(this);// QPushButton *pushButton2 new QPushButton(西理win, this);pushButton2 new QPushButton(西理win, this) ;//改变文本pushButton2-setText(西理win嘛);//设置初始位置 // pushButton2-move(50,50);//定义按钮的长和宽 // int buttonWidth 50; // int buttonHeight 20;//获取电脑屏幕的长宽 // int screenWidth QGuiApplication::primaryScreen()-geometry().width(); // 获取主屏幕宽度 // int screenHeight QGuiApplication::primaryScreen()-geometry().height(); // 获取主屏幕高度//获取窗口的长宽 // int windowWidth this-width(); // 获取窗口宽度 // int windowHeight this-height(); // 获取窗口高度//打印调试 // qDebug() windowWidth; // qDebug() windowHeight;//放到这里不行得放到resizeEvent函数里面才行具体解释下面有 // pushButton2-setGeometry(windowWidth/2, windowHeight/2, buttonWidth, buttonHeight); // pushButton2-move(windowWidth/2,windowHeight/2);//点击按钮打开定时器图片每隔一秒右移20connect(pushButton2,QPushButton::clicked,[](){timer-start();connect(timer,QTimer::timeout,[](){posX20;//如果要手动调用绘图事件 用update更新update();});}); }/使“西理win”按钮的位置始终保持在中央/// void Widget::resizeEvent(QResizeEvent *event) {// 调用基类的resizeEvent以确保正常的处理调试发现这行可要可不要QWidget::resizeEvent(event); // int screenWidth QGuiApplication::primaryScreen()-geometry().width(); // 获取主屏幕宽度 // int screenHeight QGuiApplication::primaryScreen()-geometry().height(); // 获取主屏幕高度// 获取新的窗口宽度和高度int windowWidth this-width();qDebug() windowWidth;int windowHeight this-height();qDebug() windowHeight;// 更新按钮的位置pushButton2-setGeometry(windowWidth / 2, windowHeight / 2, 100, 20);ui-pushButton-setGeometry(windowWidth-105, windowHeight-25, 100, 20);QPoint buttonPos ui-pushButton-mapTo(this, QPoint(0, 0));int buttonX buttonPos.x();int buttonY buttonPos.y();qDebug() buttonX;qDebug() buttonY; }void Widget:: paintEvent(QPaintEvent *) { // // //实例化画家对象 this指定的是绘图设备 // QPainter painter(this);// // //设置画笔 // QPen pen(QColor(0,20,255)); // // //设置画笔宽度 // pen.setWidth(3); // // //设置画笔风格 // pen.setStyle(Qt::DashDotDotLine); // // //让画家 使用这个笔 // painter.setPen(pen);// // //设置画刷 // QBrush brush(Qt::red); // // //设置画刷风格 // brush.setStyle(Qt::DiagCrossPattern); // // //让画家使用画刷 // painter.setBrush(brush);// // //画线 // painter.drawLine(QPoint(0,0) , QPoint(100,100));// // //画圆 椭圆 // painter.drawEllipse( QPoint(100,100) , 50,50);// // //画矩形 // painter.drawRect(QRect(20,20,50,50));// // //画文字 // painter.drawText(QRect(10,200,150,50) , 好好学习天天向上);//高级设置 ///// QPainter painter(this);painter.drawEllipse(QPoint(100,50) , 50,50);// //设置 抗锯齿能力 效率较低painter.setRenderHint(QPainter::Antialiasing);painter.drawEllipse(QPoint(200,50) , 50,50);// //画矩形 // painter.drawRect(QRect(20,20,50,50));// // //移动画家 // painter.translate(100,0);// // //保存画家状态 // painter.save();// painter.drawRect(QRect(20,20,50,50));// painter.translate(100,0);// // //还原画家保存状态 // painter.restore();// painter.drawRect(QRect(20,20,50,50));/利用画家 画资源图片 ///QPainter painter(this);// 加载原始图片QPixmap originalPixmap(:/image/kk.jpg);// 计算缩放比例使图片适应窗口大小QSize scaledSize originalPixmap.size().scaled(this-size(), Qt::KeepAspectRatio);// 如果超出屏幕从0开始if (posX this-width()) {posX 0;}// 将图片进行缩放并绘制在窗口上painter.drawPixmap(QRect(posX, 0, scaledSize.width(), scaledSize.height()), originalPixmap); }Widget::~Widget() {delete ui; }
http://www.yutouwan.com/news/482831/

相关文章:

  • 中国建设银行手机银行官方网站同创企业网站建设
  • 阿里云网站建设官方自营店工业设计网站知乎
  • 免费网站制作开发wordpress让小工具支持简码
  • 下拉框代码自做生成网站拼多多刷单网站开发
  • 网站建设解决方案有哪些wordpress微名片模板
  • 网站交互功能营销式网站制作
  • 做房地产公司网站的费用网页图片不显示
  • 炎陵网站建设网站标题和关键词一样
  • 网站前后台门户系统设计
  • 网站搭建工具建设网站需要准备哪些内容
  • 网站建设系统开发感想与收获百度移动端优化
  • 深圳龙岗是市区还是郊区北京seo排名厂家
  • 网站建设PHP开发是什么意思移动端显卡
  • 网站可兼容移动端商洛建设网站
  • 解决wordpress需要ftp南通网站seo服务
  • 做网站的总是有活动怎么回事wordpress模板下载云落
  • 网站建设现况分析电商网站推广怎么做
  • 三水做网站网站被抄袭怎么投诉
  • 营销型 网站 品牌广告公司取名大全集
  • 肇庆做网站哪家好搜索网站的浏览器
  • wordpress简约下载站模板微信网站制作平台
  • 网站建设的市场定位的方案如何做网站文件
  • 整改网站建设情况龙岗专业做网站
  • 佛山建设网站公司哪家好广州商城网站建设报价
  • h5页面制作代码wp建站优化
  • 修改wordpress字体大小北京做网站优化的公司
  • 龙岗网站制作市场北京搜索关键词优化
  • 免费下载网站软件平台推广怎么写
  • 网站用户注册怎么做做个网站费用
  • app网站如何做推广方案莱阳做网站