我学习qt主要是通过b站网课,链接在此【最新QT从入门到实战完整版|传智教育】 https://www.bilibili.com/video/BV1g4411H78N?share_source=copy_web&vd_source=ed7b2c0ea241cfb35f209d4a957d5fe0通过暑校写了一个大作业初步了解了qt,真的,只是,初步hhhh。下面写一些我学到的知识点吧。
1. 关于ui界面:我设计ui界面时都是手动把组件拖进去的,没有用纯代码的方法,简单界面的话手动还是挺好的,但是如果有复杂的功能,肯定是代码更容易实现,代码是一切的基础嘛。
(1)主界面:MainWindow肯定是要有的,有且唯一。
菜单栏menubar:可以直接添加,但只能添加英文,中文要在iconText中
工具栏toolbar:用下方的action editor可以添加选项。
(2)对话框:Dialog就是弹出的小框,可以填写信息。有的对话框自带确定按钮和取消按钮,确定按钮被按下后要实现功能并关闭,取消被按下后关闭即可,使用Signals and Slots Editor可以实现。
确定键-clicked-对话框-accept()
取消键-clicked-对话框-reject()
Dialog dlg;
int ret = dlg.exec();
if(ret==QDialog::Accept)
{
此处写按下确定键要实现的功能
}
(3)如何触发action:在ui界面添加的每个action都意味着,点击后要实现对应的功能,这些功能要用代码实现。
函数声明:void on_actionname_triggered();
2. QTableview:用于制作并显示表格。
(1)设置水平表头:
QStandardItemModel* infomodel;
int ColCnt = ...
infomodel->setColumnCount(ColCnt);
QStringList templist;
templist.append("第一列");
templist.append("第二列");
...
infomodel->setHorizontalHeaderLabels(templist);
(2)设置行数:
int RowCnt = ...
infomodel->setRowCount(RowCnt);
(3)填写表格内容:
QStandardItem* atempItem;
QString tempStr;
for(int i=0;i<RowCnt;i++)
{
atempItem=new QStandardItem(字符串1);
infomodel->setItem(i,0,atempItem);
atempItem=new QStandardItem(字符串2);
infomodel->setItem(i,2,atempItem);
...
}
(4)切换不同表格:
函数声明:void on_tablename_changed();
void on_tablename_changed()
{
QModelIndex index=ui->tablename->currentIndex();
int iRow=index.row();
int iCol=index.column();
QVariant data;
switch(m_iCurTable)
{
case 1:
{switch(iCol) {...} }
...
}
}
未完待续。。。