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

福田网站建设-信科网络wordpress php 模板修改

福田网站建设-信科网络,wordpress php 模板修改,技能培训,做桂林网站的图片文章目录 1. 实例简介2. 源码2.1 混合式界面设计2.2 mainwindow.h2.3 mainwindow.cpp 1. 实例简介 Qt 中用于项 (Item)处理的组件有两类#xff0c;一类是 Item Views#xff0c;包括 QListView、QTreeView、QTableView、QColumnView 等;另一类是 Item Widgets#xff0c;包… 文章目录 1. 实例简介2. 源码2.1 混合式界面设计2.2 mainwindow.h2.3 mainwindow.cpp 1. 实例简介 Qt 中用于项 (Item)处理的组件有两类一类是 Item Views包括 QListView、QTreeView、QTableView、QColumnView 等;另一类是 Item Widgets包括 QListWidget、QTreeWidget 和QTableWidget。 Item Views 基于模型/视图(Model/Vicw)结构视图 (View)与模型数据(Model Data)关联实现数据的显示和编辑模型/视图结构的使用在第5 章详细介绍。 Item Widgets 是直接将数据存储在每一个项里例如QListWidget 的每一行是一个项QTreeWidget 的每个节点是一个项QTableWidget 的每一个单元格是一个项。一个项存储了文字文字的格式、自定义数据等。 Item Widgets 是GUI 设计中常用的组件本节通过实例 samp4_7 先介绍 QListWidget 以及其他一些组件的用法实例运行时界面如图 4-8 所示。 本实例不仅介绍QListWidget 的使用还包括如下一些功能的实现。 使用QTabWidget 设计多页界面工作区右侧就是一个具有 3 个页面的 TabWidget 组件。使用QToolBox 设计多组工具箱工作区左侧是一个有 3 个组的 TolBox 组件。使用分隔条(QSplitter) 设计可以左右分割的界面工作区的 TolBox 和 TabWidget 之间有一个 splitter运行时可以分割调整两个组件的大小。创建Actions用Actions 设计主工具栏用Action 关联 QToolButton 按钮。使用 QToolButton 按钮设置与 Action 关联设计具有下拉菜单功能的 ToolButton 按钮在主工具栏上添加具有下拉菜单的 ToolButton 按钮。使用 QListWidget演示如何创建和添加项为项设置图标和复选框如何遍历列表进行选择。QListWidget的主要信号currentItemChanged()的功能编写响应槽函数。为QListWidget 组件利用已设计的 Actions 创建自定义快捷菜单。 关于上述提到详细的请参考源码及书籍 2. 源码 2.1 混合式界面设计 2.2 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindow #include QListWidgetItemnamespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTprivate:void setActionsForButton();void createSelectionPopMenu(); public:explicit MainWindow(QWidget *parent 0);~MainWindow();private slots:void on_actListClear_triggered(); //清除项void on_actListIni_triggered(); //项初始化void on_chkBoxListEditable_clicked(bool checked); //chkBoxListEditable单击事件//当前选择项发生变化void on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);void on_actListInsert_triggered(); //插入项void on_actListAppend_triggered(); //添加项void on_actListDelete_triggered(); //删除当前项void on_listWidget_customContextMenuRequested(const QPoint pos); //弹出菜单void on_toolBox_currentChanged(int index); //ToolBox当前组变化时显示TabWidget相应的页面void on_actSelALL_triggered(); //全选void on_actSelNone_triggered();//全不选void on_actSelInvs_triggered();//反选private:Ui::MainWindow *ui; };#endif // MAINWINDOW_H 2.3 mainwindow.cpp #include mainwindow.h #include ui_mainwindow.h #include QMenuvoid MainWindow::setActionsForButton() {//为QToolButton按钮设置Actionui-tBtnListIni-setDefaultAction(ui-actListIni);ui-tBtnListClear-setDefaultAction(ui-actListClear);ui-tBtnListInsert-setDefaultAction(ui-actListInsert);ui-tBtnListAppend-setDefaultAction(ui-actListAppend);ui-tBtnListDelete-setDefaultAction(ui-actListDelete);ui-tBtnSelALL-setDefaultAction(ui-actSelALL);ui-tBtnSelNone-setDefaultAction(ui-actSelNone);ui-tBtnSelInvs-setDefaultAction(ui-actSelInvs); }void MainWindow::createSelectionPopMenu() { //创建下拉菜单QMenu* menuSelectionnew QMenu(this); //创建选择弹出式菜单menuSelection-addAction(ui-actSelALL);menuSelection-addAction(ui-actSelNone);menuSelection-addAction(ui-actSelInvs);//listWidget上方的tBtnSelectItem按钮ui-tBtnSelectItem-setPopupMode(QToolButton::MenuButtonPopup);//菜单弹出模式执行按钮的Actionui-tBtnSelectItem-setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //按钮样式ui-tBtnSelectItem-setDefaultAction(ui-actSelPopMenu);//关联Actionui-tBtnSelectItem-setMenu(menuSelection); //设置下拉菜单//工具栏上的 下拉式菜单按钮QToolButton *aBtnnew QToolButton(this);aBtn-setPopupMode(QToolButton::InstantPopup);//buttons own action is not triggered.aBtn-setToolButtonStyle(Qt::ToolButtonTextUnderIcon);//按钮样式aBtn-setDefaultAction(ui-actSelPopMenu); //设置Action,获取图标、标题等设置aBtn-setMenu(menuSelection);//设置下拉菜单ui-mainToolBar-addWidget(aBtn); //工具栏添加按钮//工具栏添加分隔条和“退出”按钮ui-mainToolBar-addSeparator();ui-mainToolBar-addAction(ui-actQuit); }MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this);setCentralWidget(ui-splitter); //设置中心组件setActionsForButton();createSelectionPopMenu(); }MainWindow::~MainWindow() {delete ui; }void MainWindow::on_actListClear_triggered() {ui-listWidget-clear(); //清除项 }void MainWindow::on_actListIni_triggered() { //初始化项QListWidgetItem *aItem; //每一行是一个QListWidgetItemQIcon aIcon;aIcon.addFile(:/images/icons/check2.ico); //设置ICON的图标bool chkui-chkBoxListEditable-isChecked();//是否可编辑ui-listWidget-clear(); //清除项for (int i0; i10; i){QString strQString::asprintf(Item %d,i);aItemnew QListWidgetItem(); //新建一个项aItem-setText(str); //设置文字标签aItem-setIcon(aIcon);//设置图标aItem-setCheckState(Qt::Checked); //设置为选中状态if (chk) //可编辑, 设置flagsaItem-setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);else//不可编辑, 设置flagsaItem-setFlags(Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);ui-listWidget-addItem(aItem); //增加一个项} }void MainWindow::on_chkBoxListEditable_clicked(bool checked) { //可编辑 QCheckBox的响应代码 设置所有项是否可编辑int i,cnt;QListWidgetItem *aItem;cntui-listWidget-count();//项的个数for (i0; icnt; i){aItemui-listWidget-item(i);//获得一个项if (checked) //可编辑aItem-setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);elseaItem-setFlags(Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);}}void MainWindow::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous) { //listWidget当前选中项发生变化QString str;if (current ! NULL) //需要检测变量指针是否为空{if (previousNULL) //需要检测变量指针是否为空str当前current-text();elsestr前一项previous-text(); 当前项current-text();ui-editCutItemText-setText(str);} }void MainWindow::on_actListInsert_triggered() { //插入一个项QIcon aIcon;aIcon.addFile(:/images/icons/check2.ico); //图标bool chkui-chkBoxListEditable-isChecked(); //是否可比那几QListWidgetItem* aItemnew QListWidgetItem(New Inserted Item); //创建一个项aItem-setIcon(aIcon);//设置图标aItem-setCheckState(Qt::Checked); //设置为checkedif (chk) //设置标记aItem-setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);elseaItem-setFlags(Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);ui-listWidget-insertItem(ui-listWidget-currentRow(),aItem); //在当前行的上方插入一个项}void MainWindow::on_actListAppend_triggered() {//增加一个项QIcon aIcon;aIcon.addFile(:/images/icons/check2.ico); //设定图标bool chkui-chkBoxListEditable-isChecked();//是否可编辑QListWidgetItem* aItemnew QListWidgetItem(New Added Item); //创建一个ItemaItem-setIcon(aIcon); //设置图标aItem-setCheckState(Qt::Checked); //设置为checkedif (chk) //设置标志aItem-setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);elseaItem-setFlags(Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);ui-listWidget-addItem(aItem);//增加一个项}void MainWindow::on_actListDelete_triggered() { //删除当前项int rowui-listWidget-currentRow();//当前行QListWidgetItem* aItemui-listWidget-takeItem(row); //移除指定行的项但不deletedelete aItem; //需要手工删除对象// QListWidgetItem *QListWidget::takeItem(int row) // Removes and returns the item from the given row in // the list widget; otherwise returns 0. // Items removed from a list widget will not be managed by Qt, // and will need to be deleted manually. }void MainWindow::on_listWidget_customContextMenuRequested(const QPoint pos) {Q_UNUSED(pos);QMenu* menuListnew QMenu(this); //创建菜单//添加Actions创建菜单项menuList-addAction(ui-actListIni);menuList-addAction(ui-actListClear);menuList-addAction(ui-actListInsert);menuList-addAction(ui-actListAppend);menuList-addAction(ui-actListDelete);menuList-addSeparator();menuList-addAction(ui-actSelALL);menuList-addAction(ui-actSelNone);menuList-addAction(ui-actSelInvs);menuList-exec(QCursor::pos()); //在鼠标光标位置显示右键快捷菜单delete menuList; //手工创建的指针必须手工删除 }void MainWindow::on_toolBox_currentChanged(int index) {ui-tabWidget-setCurrentIndex(index);//ToolBox当前页与tabWidget的当前页联动 }void MainWindow::on_actSelALL_triggered() { //项全选int cntui-listWidget-count();//项个数for (int i0; icnt; i){QListWidgetItem *aItemui-listWidget-item(i);//获取一个项aItem-setCheckState(Qt::Checked);//设置为选中} }void MainWindow::on_actSelNone_triggered() { //全不选int i,cnt;QListWidgetItem *aItem;cntui-listWidget-count();//项个数for (i0; icnt; i){aItemui-listWidget-item(i);//获取一个项aItem-setCheckState(Qt::Unchecked);//不选} }void MainWindow::on_actSelInvs_triggered() {//反选int i,cnt;QListWidgetItem *aItem;cntui-listWidget-count();//项个数for (i0; icnt; i){aItemui-listWidget-item(i);//获取一个项if (aItem-checkState()!Qt::Checked)aItem-setCheckState(Qt::Checked);elseaItem-setCheckState(Qt::Unchecked);}}
http://icebutterfly214.com/news/19889/

相关文章:

  • 2025 年最新自闭阀源头厂家推荐排行榜:探寻核心竞争力,助力供暖供水工程选品燃气安全自闭阀/燃气管道自闭阀公司推荐
  • 2025年PCBA电路板加工厂哪家售后好?
  • 学习Hyperledger Fabric2.5
  • 量化选股与量化交易第886篇:通达信收割机 - Leone
  • 在 openEuler 上部署 Kafka 集群:深度性能评测与优化指南
  • openEuler + Nginx 高性能 Web 服务深度评测
  • pytorch汉字识别.
  • Russian Per GDP
  • 近期小细节总结
  • 深入理解浮点数格式:FP32、BF16、FP16与FP8的技术对比 - 详解
  • 2025年11月小学生学习机品牌推荐:五强口碑榜与选购指南
  • 详细介绍:Java 数学类详解:Math 类常用方法(abs/sqrt/random 等)一篇掌握
  • 【AI元人文:构建“舆情反射与模拟沙盘”机制(合二篇)】
  • 最长递增子序列(LIS)深度解析:从动态规划到贪心+二分
  • 小程序认证费:如何可以省下这小程序认证费用?
  • 完整教程:2024年提示工程架构师必看:用户参与研究的最新趋势,提升提示设计效果
  • 2025年11月产品设计公司推荐榜:权威评测五强排名与对比
  • leetcode热题100-001:两数之和
  • 2025年11月沈阳代理记账公司排行榜:专业顾问的深度推荐
  • ICPC2023杭州个人题解
  • JMeter题目
  • ▇壳子
  • 2025年比较好的设计感保温杯厂家推荐及选择参考
  • HTTPPOST表单提交接口测试
  • 2025年靠谱的无油烟不粘锅最新TOP厂家排名
  • 企业级AI知识库革命:开源免费的PandaWiki如何让团队效率飙升300%?
  • C++语言中指针变量int和取值操作ptr
  • 基于遗传算法求解流水车间调度问题(FSP)的MATLAB实现
  • Mybatis执行流程?是否支持延迟加载?延迟加载的底层原理?
  • 2025年靠谱的称重模块传感器热门厂家推荐榜单