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

手机网站报价单模板兰州关键词优化效果

手机网站报价单模板,兰州关键词优化效果,wordpress首页添加友情链接,个人网站效果图1.QObject 只有继承了QObject类的类#xff0c;才具有信号槽的能力。所以#xff0c;为了使用信号槽#xff0c;必须继承QObject。凡是QObject类#xff08;不管是直接子类还是间接子类#xff09;#xff0c;都应该在第一行代码写上Q_OBJECT。不管是不是使用信号槽才具有信号槽的能力。所以为了使用信号槽必须继承QObject。凡是QObject类不管是直接子类还是间接子类都应该在第一行代码写上Q_OBJECT。不管是不是使用信号槽都应该添加这个宏。这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C RTTI 的反射能力。因此如果你觉得你的类不需要使用信号槽就不添加这个宏就是错误的。其它很多操作都会依赖于这个宏。 示例: #include QMainWindow #include QString class A:public QObject{ public:A(QObject* parentNULL):QObject(parent){qInfo()this被构造;};~A(){qInfo()this被销毁;}; }; int main(int argc, char* argv[]){A objA;A* pA2new A(objA); //将pA2挂在到objA下A* pA3 new A(pA2);objA.dumpObjectTree(); }这样子就会形成一个树结构。 QObject:: A     QObject:: pA2         QObject:: pA3 2.事件与信号 GUI应用程序都由事件驱动事件主要由应用程序的用户生成例如点击按钮控件。或者由其他接触发生如:Internet连接,窗口管理器或计时器。当调用exec方法时应用程序进入主循环。主循环将获取事件并发送到对象。 信号与槽  信号和槽用于对象之间的通信。 //signal1调用到obj2的slot1 connect(Object1,signal1,Object2,slot1);//signal1调用到obj3的slot1 connect(Object1,signal1,Object3,slot1);slot是普通的C函数当与之相连的信号发出时将调用。 连接信号和插槽的方式: 1.成员函数指针 connect(senderPtr,QObject::destoryed,this,MyObject::objectDestroyed); 2.仿函数或lambda表达式作为slot connect(sender,QObject::destoryed,this,[](){this-m_object.remove(sender);});  学习示例: 头文件 #ifndef MYHEAD1_H_ #define MYHEAD1_H_ #include QCoreApplication #include QDebug class Sender : public QObject {Q_OBJECT public:explicit Sender(QObject* parent nullptr);private:int m_age 10;public:void incAge(); signals:// 信号函数无需定义只需声明并且不能有返回参数但可以有输入参数void ageChanged(int value); };class Receiver : public QObject {Q_OBJECT public:explicit Receiver(QObject* parent nullptr); public slots://槽函数为普通函数需要定义但也不能有返回值void ageChange(int age); }; #endif // MYHEAD1_H_在main函数中调用: #include myhead1.h int main(int argc, char* argv[]) {Sender senderObj;senderObj.incAge();Receiver recriverObj;//传递信号,通过指针的方式传递QObject::connect(senderObj,Sender::ageChanged,recriverObj,Receiver::ageChange);//建立连接后每次emit发送信号都会传递给reciver然后调用ageChangesenderObj.incAge();senderObj.incAge();//断开连接 QObject::disconnect(senderObj,Sender::ageChanged,recriverObj,Receiver::ageChange);senderObj.incAge();return 0; }当建立连接后每次emit发送信号后都会执行相应的槽(slots)而段凯连接后则不会继续调用槽。 3.鼠标键盘响应 在MainWindow构造函数中注册事件在触发时让其发出信号调用对应处理槽. 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindowQT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();// QWidget interface protected:void keyPressEvent(QKeyEvent *event);void mouseMoveEvent(QMouseEvent *event); }; #endif // MAINWINDOW_H实现文件 #include mainwindow.h#include QtWidgets MainWindow::MainWindow(QWidget* parent): QMainWindow(parent) {// 开启鼠标跟踪setMouseTracking(true);// 创建一个按钮对象,入参为按钮显示名字和操作对象auto* quitBtn new QPushButton(Quit, this);// 设置按钮位置和大小quitBtn-setGeometry(50, 25, 100, 50);// 创建连接当按钮点击事件出发时调用循环的退出函数connect(quitBtn, QPushButton::clicked, qApp, QApplication::quit); }MainWindow::~MainWindow() { }void MainWindow::keyPressEvent(QKeyEvent* event) {// 如果当前按键事件是esc键则退出程序if (event-key() Qt::Key_Escape)qApp-quit(); }void MainWindow::mouseMoveEvent(QMouseEvent* event) {// 获取当前鼠标X坐标int x event-pos().x();// 获取y坐标int y event-pos().y();QString text 坐标: QString::number(x) , QString::number(y);this-statusBar()-showMessage(text); }在其中使用new QPushButton创建了一个按钮并且在按钮中显示了文字同时使用按钮中的方法来指定按钮的位置和大小(按照x,y轴来判断位置和创建按钮大小的).最后通过指针绑定按钮的点击事件当按钮被按下时触发QPushButton::clicked然后调用槽QApplication::quit用来退出程序。 其余的键盘检测按键和鼠标位置是通过重写QMainWindow类中的抽象函数来实现当在窗口中检测到时会自动的进行调用. 4.控件与自定义槽 QWidget是用户界面的原子类。它接收鼠标、键盘和来自系统的其他事件并在屏幕上将它们绘制出来。每个Widget都是矩形的并按照Z-orderZ轴进行排序。一个Widget夹在它的Parent和它前面的Widget之间。 没有嵌入parent widget中的Widget称为Window。通常情况下Windows有一个Frame和标题栏当然也可以通过window flags来取消这些项。Qt中QMainWindow和QDialog的多种多样的子类是最常见的Window类型. 这就是一个定义好的QMainWindow,其布局已经是默认规定好的无法再去增加布局但是可以创建布局然后替换对应的布局,并放入组件。 头文件: #ifndef MAINWINDOW_H_ #define MAINWINDOW_H_ #include QMainWindow class QPushButton; class QLabel; class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget* parent nullptr);~MainWindow();private:QPushButton* clickBtn;QLabel* label;// QObject interface protected:void timerEvent(QTimerEvent *event);public slots:void onClick();void onCheck(int state); }; #endif // MAINWINDOW_H 实现文件: #include mainwindow.h#include QtWidgets MainWindow::MainWindow(QWidget* parent): QMainWindow(parent){// 创建一个布局QWidget* myWidget new QWidget(this);// 替换到中心布局中setCentralWidget(myWidget);// 创建按钮clickBtn new QPushButton(点击, myWidget);// 创建点击事件QCheckBox* cb new QCheckBox(Connect, myWidget);// 设置点击事件默认状态cb-setCheckState(Qt::Checked);label new QLabel(QTime::currentTime().toString(), myWidget);//横向的展示组件QHBoxLayout* hbox new QHBoxLayout(myWidget);hbox-addWidget(clickBtn);hbox-addWidget(cb);hbox-addWidget(label);startTimer(1000);// 以指针的方式传入对象和函数connect(clickBtn, QPushButton::clicked, this, MainWindow::onClick);connect(cb, QCheckBox::stateChanged, this, MainWindow::onCheck); }MainWindow::~MainWindow() { }void MainWindow::timerEvent(QTimerEvent* event) {// 标识这个形参没有用到Q_UNUSED(event);label-setText(QTime::currentTime().toString()); }void MainWindow::onClick() {// 在底部标题栏展示信息statusBar()-showMessage(按钮被点击); }void MainWindow::onCheck(int state) {statusBar()-showMessage();// 根据QCheckBox状态来执行对应函数if (state Qt::Checked)connect(clickBtn, QPushButton::clicked, this, MainWindow::onClick);elsedisconnect(clickBtn, QPushButton::clicked, this, MainWindow::onClick); }从这个程序中我们可以将组件装入到我们自己创建的widget布局中然后将该布局设置为中心布局这样就可以在中心区域展示组件了同时创建了自定义的槽当触发相应事件的时候调用了自定义槽进行响应。同时也可以根据信号的实时状态来进行连接和断开。
http://www.zqtcl.cn/news/614779/

相关文章:

  • 娄底网站seo建平台网站费用
  • seo优化网站的注意事项WordPress伪静态公告404
  • 手机网站自动适应沈阳网站建设公司电话
  • 备案号网站下边苏州广告公司招聘
  • 企业网站设计模板js做网站
  • 福州最好的网站建设公司网络策划
  • 威宁做网站西部数码网站管理助手 没有d盘
  • 网站设计基础知识重庆seo博客推广
  • 中小企业商务网站建设wordpress dmeng
  • 关于网站建设总结公司网站购买主机
  • 定制网站与模板网站网页美工设计师工资
  • 丹棱县 网站建设wordpress公司主题破解版
  • 贾汪微网站开发百度推广登录账号首页
  • 网站开发和网站运营的区别嘉兴市秀洲区住房和建设局网站
  • 西安网站开发公司哪家强如何做付费阅读网站
  • ios认证 东莞网站建设天津企业网站建设方案
  • 高网站排名吗wordpress 拼音别名
  • 网站出现的问题杭州旅游网站建设
  • 陕西城乡建设部网站怎么用自己注册的域名做网站
  • 企业邮箱注册价格汕头做网站优化的公司
  • 高校工会网站建设网站静态页面生成
  • 辽宁省营商环境建设局 网站做网站前端后端ui什么意思
  • 合作社网站模板贵州安顺建设主管部门网站
  • 网站不备案能访问吗哪家做企业网站
  • 做网站写的代号好跟不好的区别企信网企业信用信息系统
  • 网站需要服务器吗手机网站解决方案
  • 网站子网页怎么做国外网站 模板
  • 手机评测网站标志设计分析
  • 网页游戏网站建设成都公司网站
  • 网站流量统计分析的误区wordpress二级目录安装