Qt:TreeWidget中添加子控件,并在主窗口接收响应
来源:互联网 发布:数据读写测试用例 编辑:程序博客网 时间:2024/05/18 02:06
头文件:
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QString>#include <QTreeWidgetItem>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private: Ui::MainWindow *ui; void AddItem(const QString &text);private slots: void DelItem(QTreeWidgetItem *item);};#endif // MAINWINDOW_H
deletewidget.h
#ifndef DELETEWIDGET_H#define DELETEWIDGET_H#include <QWidget>#include <QTreeWidgetItem>namespace Ui {class DeleteWidget;}class DeleteWidget : public QWidget{ Q_OBJECTpublic: explicit DeleteWidget(QTreeWidgetItem *idItem, QWidget *parent = 0); ~DeleteWidget();private: Ui::DeleteWidget *ui;signals: int delItem(QTreeWidgetItem *idItem);private: QTreeWidgetItem *m_idItem;private slots: void OnDelBtnClicked();};#endif // DELETEWIDGET_H
源文件:
mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include "deletewidget.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); setFixedSize(400,300);//设置窗口大小,并限制最大化 ui->treeWidget->setColumnWidth(0,200);//设置第一列列宽 AddItem("Bunfly.txt"); AddItem("万里长城.mp3"); AddItem("盛世狼烟.txt");}MainWindow::~MainWindow(){ delete ui;}void MainWindow::AddItem(const QString &text){ QTreeWidgetItem *item = new QTreeWidgetItem; item->setText(0,text); ui->treeWidget->addTopLevelItem(item); DeleteWidget *widget = new DeleteWidget(item); ui->treeWidget->setItemWidget(item,1,widget); connect(widget,SIGNAL(delItem(QTreeWidgetItem*)), this,SLOT(DelItem(QTreeWidgetItem*)));}void MainWindow::DelItem(QTreeWidgetItem *item){ int index = ui->treeWidget->indexOfTopLevelItem(item); ui->treeWidget->takeTopLevelItem(index); delete item;}main.cpp
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}deletewidget.cpp
#include "deletewidget.h"#include "ui_deletewidget.h"DeleteWidget::DeleteWidget(QTreeWidgetItem *idItem, QWidget *parent) : QWidget(parent), ui(new Ui::DeleteWidget),m_idItem(idItem){ ui->setupUi(this); ui->delButton->setFlat(true);//设置按钮透明 connect(ui->delButton,SIGNAL(clicked()), this,SLOT(OnDelBtnClicked()));}DeleteWidget::~DeleteWidget(){ delete ui;}void DeleteWidget::OnDelBtnClicked(){ emit delItem(m_idItem);}设计界面:
mainwindow.ui
deletewidget.ui
运行效果:
阅读全文
0 0
- Qt:TreeWidget中添加子控件,并在主窗口接收响应
- VC++单文档分割窗口、在视图中添加控件,并响应该控件的事件
- VC++单文档分割窗口、在视图中添加控件,并响应该控件的事件
- 在treeWidget中加入控件
- 在treeWidget中加入控件
- 在treeWidget中加入控件
- Qt 中Treewidget添加右键菜单
- Qt 中Treewidget添加右键菜单
- Qt 子窗口上控件的槽函数不响应
- Qt的子控件如何接收主窗口的手势事件
- qt中在主窗口添加一个部件
- iOS开发之在scrollview上添加点击并解决其子控件的点击无响应(如tableView)
- 在对话框中使用子窗口控件
- Qt -- 在窗口中添加背景图片时并且不覆盖其控件原来样子的方法
- 在form窗口中动态添加控件
- Qt添加自定义控件并在qtDesigner中使用以及链接失败的解决方法
- 在ATL无窗口ACTIVEX控件中响应timer消息
- WTL在父窗口中响应控件的通知消息
- Spring Cloud实战小贴士:Zuul处理Cookie和重定向
- 题2 实现单例模式
- angular开发中遇到的问题总结
- C/C++获取Windows系统版本
- 电影推荐:阿兰·图灵--一个伟大而又悲惨的天才
- Qt:TreeWidget中添加子控件,并在主窗口接收响应
- gnuplot 学习笔记(multiplot 输出到文件)
- MLP && BP && RBF && SVM Neural Network
- 倒排索引
- 解决Excel导出时getOutputStream() has already been called for this response异常
- HTTP协议
- angular实现手动分页
- java注解的底层实现
- IO之阻塞、非阻塞、同步、异步总结