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

全网搜索软件广州四楚seo顾问

全网搜索软件,广州四楚seo顾问,怎样做网站关键词优化,网站开发案例详解光盘下载本文章从属于 Qt实验室-CSDN博客系列 拖放操作包括两个动作#xff1a;拖动(drag)和放下(drop或称为放置)。 拖动允许 对于要拖出的窗口或控件#xff0c;要setDragEnabled(true) 对于要拖入的窗口或控件#xff0c;要setAcceptDrops(true) 下面以一个具体的用例进行说…本文章从属于  Qt实验室-CSDN博客系列 拖放操作包括两个动作拖动(drag)和放下(drop或称为放置)。 拖动允许 对于要拖出的窗口或控件要setDragEnabled(true) 对于要拖入的窗口或控件要setAcceptDrops(true) 下面以一个具体的用例进行说明 拖动列表控件中的项目 该用例实现从左边的列表窗口拖出到右边的Widget窗口拖入 主界面设置 MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {this-resize(1200,800);//从ProjectListWidget拖动到MyWidget上QSplitter* centernew QSplitter;center-addWidget(new ProjectListWidget);center-addWidget(new MyWidget);center-setOrientation(Qt::Horizontal);this-setCentralWidget(center); }左侧列表窗口设置 class ProjectListWidget : public QListWidget {Q_OBJECT public:ProjectListWidget();// QAbstractItemView interface protected:void startDrag(Qt::DropActions supportedActions); }; 左侧窗口允许拖动其item并且将item中的文字存入QMimeData用以传输到右侧窗体中 ProjectListWidget::ProjectListWidget() {this-addItem(item1);this-addItem(item2);//(1)开启允许拖动如果不开启是不会有拖动item移动的效果的this-setDragEnabled(true); }//(2)开始拖动设置了一种标记为x1的拖动数据 void ProjectListWidget::startDrag(Qt::DropActions supportedActions) {QString textthis-currentItem()-text();QMimeData* mimeDatanew QMimeData;mimeData-setData(x1,text.toLocal8Bit());QDrag* dragnew QDrag(this);drag-setMimeData(mimeData);drag-exec(); } 右侧窗体的实现会多些首先必须允许拖拽进入事件dragEnterEvent然后必须允许拖拽移动事件dragMoveEvent。最后实现dropEvent来接收数据。 MyWidget::MyWidget(QWidget *parent): QWidget{parent} {//(1)开启允许放置如果不开启拖动进入界面时将显示禁止符号this-setAcceptDrops(true); }//2实现了以下两个方法后该界面就能允许拖拽进入了 //对一种被标记为x1的拖动数据允许拖拽进入 void MyWidget::dragEnterEvent(QDragEnterEvent *event) {if (event-mimeData()-hasFormat(x1))event-accept();elseevent-ignore(); }void MyWidget::dragMoveEvent(QDragMoveEvent *event) {if (event-mimeData()-hasFormat(x1))event-accept();elseevent-ignore(); }//3实现dropEvent来接收拖动携带的数据 void MyWidget::dropEvent(QDropEvent *event) {if (event-mimeData()-hasFormat(x1)){QString text(event-mimeData()-data(x1));QPoint posevent-pos();//在这里将拖动过来的数据放入list,然后通过paintEvent()进行绘制m_textList.append({text,pos});event-accept();this-update();}elseevent-ignore(); }void MyWidget::paintEvent(QPaintEvent *event) {QPainter painter(this);for(int i0;im_textList.size();i){QPoint posm_textList.at(i).second;QString textm_textList.at(i).first;painter.drawText(pos,text);} }最终的效果如下 事件发出顺序和传递规则 上图参考自 Qt拖放(1)拖放基本原理(QDrag类)-CSDN博客 关于 QDrag.exec() void ProjectListWidget::startDrag(Qt::DropActions supportedActions) {//调用该方法的时机点击item并移动鼠标即进入该方法//然后执行到drag-exec()阻塞//exec()函数是一个阻塞函数(但不会阻塞主事件循环)//也就是说在松开鼠标之前不会打印after drag//但是窗口依然可以得到其他的事件响应例如mainwindow依然可以响应QTimer触发的update()QString textthis-currentItem()-text();QMimeData* mimeDatanew QMimeData;mimeData-setData(x1,text.toLocal8Bit());QDrag* dragnew QDrag(this);drag-setMimeData(mimeData);qDebug()before drag;drag-exec();qDebug()after drag; }MainWindow中构造时添加如下代码  QTimer* timernew QTimer(this);timer-setInterval(1000);connect(timer,QTimer::timeout,[]{qDebug()update...;this-update();});timer-start(); 测试在拖拽中不释放鼠标时主窗口能否响应其他的事件是可以的 bool MainWindow::event(QEvent *event) {qDebug()event::event;return QMainWindow::event(event); } 拖动Widget中的内容到另外一个窗口或控件 以上示例开启拖动的时机在startDrag()方法内QListWidget::startDrag()可以供重写使用但是对于普通的QWidget来说并没有该方法可用 本示例以一个继承自QWidget的LeftWidget为例说明通常在mousePressEvent()中去开启拖动 void LeftWidget::mousePressEvent(QMouseEvent *event) {if(event-button()Qt::LeftButton){QString textxxxxxxx;QMimeData* mimeDatanew QMimeData;mimeData-setData(x1,text.toLocal8Bit());QDrag* dragnew QDrag(this);drag-setMimeData(mimeData);qDebug()before drag;drag-exec();qDebug()after drag;} }继续使用上一个示例的MainWindow和MyWidget实现从LeftWidget拖动到MyWidget的效果 如果要实现从拖动按钮到另外一个界面上使其文字到另外一个窗口 可以通过继承QPushButton然后重写其mousePressEvent几乎与重写LeftWidget::mousePressEvent一样。 void MyButton::mousePressEvent(QMouseEvent *event) {if(event-button()Qt::LeftButton){QString textthis-text();QMimeData* mimeDatanew QMimeData;mimeData-setData(x1,text.toLocal8Bit());QDrag* dragnew QDrag(this);drag-setMimeData(mimeData);qDebug()before drag;drag-exec();qDebug()after drag;}return QPushButton::mousePressEvent(event); }
http://www.hkea.cn/news/14283318/

相关文章:

  • 当当网网站建设建议软件技术毕业做什么工作
  • 网站建设的目的意义南昌网站小程序开发
  • 个人网站 可以做淘宝客吗低代码开发技术
  • 建立网站原则标志logo设计图片
  • 沙田镇仿做网站企业网页设计报价
  • 小程序制作模板网站广告联盟哪个比较好
  • 莒县做网站的公司客户管理软件哪家好
  • 怎么破解网站后台密码wordpress流主题
  • 内蒙古呼和浩特特产百度seo营销推广
  • 济南市城市建设集团网站静态网站做一单多少钱
  • 工业设计在线网站做优惠券的网站搭建
  • 做网站的费用如何入账2017网站备案
  • 广州市门户网站建设怎样做营销型网站推广
  • ppt模板下载素材网站学校门户网站建设必要性
  • 阿里云服务器可以访问国外网站吗wordpress免费教育机构主题
  • 矿山建设工程公司网站wordpress能采集
  • 做电脑游戏破解的网站网站重构
  • 宁波seo排名公司seo外包公司多少钱
  • 四川微信网站建设推广成都手机网站建设报价
  • 威海网站建设兼职wordpress 中国企业
  • 适合seo的建站系统搜索排名提升
  • 物流公司网站建设有什么要点wordpress网站菜单固定
  • 昌吉建设网站南京网站定制开发公司
  • 郑州视频网站建设大概多少钱商丘家具网站建设
  • 企业网站托管平台有哪些山东公司网站建设
  • 公司网站建设外包流程图阿里云主机如何搭建wordpress
  • 青岛网站推广公司地产渠道12种拓客方式
  • 深圳做三网合一网站大连头条热点新闻
  • 沃尔玛公司网站建设案例分析推广软文
  • 机场网站建设宁波网站建设相信荣胜网络