最近面试了一个题目(Qt相关),现在分享如下:

要求作出如图所示的效果:

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>namespace Ui {
class Dialog;
}class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0);~Dialog();QString name;QString gender;QString age;private slots:void on_lineEditName_editingFinished();void on_lineEditGender_editingFinished();void on_pushButtonAdd_clicked();void on_pushButtonDel_clicked();void on_lineEditAge_editingFinished();private:Ui::Dialog *ui;};#endif // DIALOG_H

#include "dialog.h"
#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this);
}Dialog::~Dialog()
{delete ui;
}void Dialog::on_lineEditName_editingFinished()
{name = ui->lineEditName->displayText();}void Dialog::on_lineEditGender_editingFinished()
{gender = ui->lineEditGender->displayText();
}
void Dialog::on_lineEditAge_editingFinished()
{age = ui->lineEditAge->displayText();
}
void Dialog::on_pushButtonAdd_clicked()
{ui->tableWidget->setColumnCount(3);ui->tableWidget->insertRow(ui->tableWidget->rowCount());ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);  //整行选中的方式
QTableWidgetItem * item1 = new QTableWidgetItem(name);QTableWidgetItem * item2 = new QTableWidgetItem(gender);QTableWidgetItem * item3 = new QTableWidgetItem(age);ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,0,item1);ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,1,item2);ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,2,item3);
}void Dialog::on_pushButtonDel_clicked()
{ui->tableWidget->removeRow(ui->tableWidget->currentItem()->row());
}

#include "dialog.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;w.show();return a.exec();
}

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Dialog</class><widget class="QDialog" name="Dialog"><property name="geometry"><rect><x>0</x><y>0</y><width>516</width><height>324</height></rect></property><property name="windowTitle"><string>Dialog</string></property><widget class="QTableWidget" name="tableWidget"><property name="geometry"><rect><x>0</x><y>0</y><width>291</width><height>231</height></rect></property></widget><widget class="QLabel" name="labelName"><property name="geometry"><rect><x>320</x><y>50</y><width>54</width><height>12</height></rect></property><property name="text"><string>姓名</string></property></widget><widget class="QLabel" name="labelGender"><property name="geometry"><rect><x>320</x><y>140</y><width>54</width><height>12</height></rect></property><property name="text"><string>性别</string></property></widget><widget class="QLineEdit" name="lineEditName"><property name="geometry"><rect><x>390</x><y>50</y><width>113</width><height>20</height></rect></property></widget><widget class="QPushButton" name="pushButtonAdd"><property name="geometry"><rect><x>70</x><y>270</y><width>75</width><height>23</height></rect></property><property name="text"><string>添加</string></property></widget><widget class="QPushButton" name="pushButtonDel"><property name="geometry"><rect><x>230</x><y>270</y><width>75</width><height>23</height></rect></property><property name="text"><string>删除</string></property></widget><widget class="QPushButton" name="pushButtonEdit"><property name="geometry"><rect><x>380</x><y>270</y><width>75</width><height>23</height></rect></property><property name="text"><string>修改</string></property></widget><widget class="QLineEdit" name="lineEditGender"><property name="geometry"><rect><x>390</x><y>130</y><width>113</width><height>20</height></rect></property></widget><widget class="QLineEdit" name="lineEditAge"><property name="geometry"><rect><x>390</x><y>200</y><width>113</width><height>20</height></rect></property></widget><widget class="QLabel" name="labelAge"><property name="geometry"><rect><x>320</x><y>210</y><width>54</width><height>12</height></rect></property><property name="text"><string>出生年月</string></property></widget></widget><layoutdefault spacing="6" margin="11"/><tabstops><tabstop>lineEditName</tabstop><tabstop>lineEditGender</tabstop><tabstop>lineEditAge</tabstop><tabstop>pushButtonAdd</tabstop><tabstop>pushButtonDel</tabstop><tabstop>pushButtonEdit</tabstop><tabstop>tableWidget</tabstop></tabstops><resources/><connections/>
</ui>

转载于:https://www.cnblogs.com/loongcheng/p/3583247.html

Qt中QtTableWidget的使用相关推荐

  1. QT 中QTimer 和 startTimer()的区别

    最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...

  2. QT 中使用 OpenCv 的 CascadeClassifier 报错

    问题 在 QT 中调用 OpenCv 的 CascadeClassifier 进行人脸框检测的时候,在构造函数中进行检测器的初始化,随后调用相机读取图片的时候就会报错,报的错误是 Segment Fa ...

  3. 【Qt】Qt中使用ssl时报错:qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method

    一.问题 在Qt中使用https,运行时报错: qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method 二.原因分析 SSLv2由 ...

  4. Qt中两种定时器用法

    在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器:一种是使用QTimer类.定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度. 1.QObject类的定时器 QObj ...

  5. Qt中的 Size Hints 和 Size Policies

    sizeHint 这个属性所保存的 QSize 类型的值是一个被推荐给窗口或其它组件(为了方便下面统称为widget)的尺寸,也就是说一个 widget 该有多大,它的一个参考来源就是这个 sizeH ...

  6. Qt中使用多线程的一些心得(一)——继承QThread的多线程使用方法

    一 前言 二Qt多线程方法一 继承QThread 2.1使用多线程的原因分析 2.2 写一个继承于QThread的线程 三 总结 一 前言   本篇文章部分内容参考了该博文:传送门.   Qt中有两种 ...

  7. C++中的stack类、QT中的QStack类

    C++中的stack 实现一种先进后出的数据结构,是一个模板类. 头文件 #include<stack> 用法(以int型为例): stack <int> s; //定义一个i ...

  8. Qt中不规则窗体和部件的实现

    Qt中不规则窗体和部件的实现 描述:a.png 窗口背景图 图片: 描述:mask.png 窗口掩码图 图片: 描述:toolbutton.png 按钮背景图 图片: 描述:toolbutton_ma ...

  9. QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置

    QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 参考文章: (1)QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 (2)https:// ...

最新文章

  1. PHP分布式链路追踪,SkyWalking:分布式架构链路追踪-SkyWalking介绍
  2. rails安装与卸载
  3. 6kyu Steps in k-prime
  4. 如何设计出一个有灵魂的「签到功能」?
  5. linux 使用trick记录之20203010
  6. 免费分享老男孩全栈9期视频,共126天
  7. oracle和sql server取第一条记录的区别以及rownum详解
  8. ChoiceFormat:数字范围格式
  9. 脚艺人什么意思,网络上脚艺人什么梗,变身脚艺人意思
  10. SharpMap在web上的应用
  11. Vue中mintui的field组件的blur和focus事件
  12. 终极算法【2】——终极算法
  13. rufus(u盘引导盘制作工具) v3.5.1497
  14. Excel数据透视表怎么做
  15. 实践课题选题管理(C语言)(选课系统)
  16. [CVPR2021]pi-GAN: Periodic Implicit Generative Adversarial Networks for 3D-Aware Image Synthesis
  17. 无效的m3u8怎么办_vue使用video.js解决m3u8视频播放格式
  18. C predefined macros __FILE__,__LINE__,__func__
  19. Springboot毕设项目电子竞技赛事管理系统f1v55java+VUE+Mybatis+Maven+Mysql+sprnig)
  20. java四大名著知乎_给四大名著重新取名……从知乎热帖看畅销书起名套路

热门文章

  1. 华农计算机科学宿舍在哪个区,新生指南Ⅵ | 住在华农·看看我们第二个家
  2. 算数运算加法_为什么计算机能“算数”
  3. python有什么用处案例_为什么大家都推荐你学python?看完这5个例子就明白了!...
  4. android点九,android关于点九(.9)图片
  5. android启动白屏的分析,Android 启动白屏,跳转黑屏以及冷启动优化
  6. matlab验证对称三相电路,不对称三相电路中,中线的电流为()。 A.0 B. C. D....
  7. Jfinal 对象列表返回前台json数据
  8. C中的危险函数(缓冲区溢出)
  9. 8086汇编常用代码总结(个人向),包含换行函数(过程),执行输出,结束程序
  10. 记录之tensorflow和pytorch中的取范数归一化操作