4 常用界面设计组件

4 常用界面设计组件

字符串与数值转换

QString常用功能

SpinBox

其他数字输入和显示组件

日期与字符串之间的转换


1
2
3
4
QDateTime curDateTime = QDateTime::currentDateTime();
curDateTime.toString("yyyy-MM-dd hh:mm:ss");
QTime time = QTime::fromString(str,"hh:mm:ss");
QDate dt = ui->calendarWidget->selectedDate();

QComBox和QPlainTextEdit

  • 以换行符分隔块
1
2
3
4
5
6
7
8
QIcon icon(":\1.ico");
ui->comboBox->addItem(icon,"item");
//创建右击菜单
void Widget::on_plainTextEdit_customContextMenuRequest(const QPoint& pos)
{
QMenu* menu = ui->plainTextEdit->createStandardContextMenu();
menu->exec(QCurson::pos());
}

QListWidget和QToolButton

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setCentralWidget(ui->splitter);
//Action就像个button,里面有图标,文本,也可以触发事件
ui->tBtnListIni->setDefaultAction(ui->actListIni);
ui->tBtnListClear->setDefaultAction(ui->actListClear);
ui->tBtnListAppend->setDefaultAction(ui->actListAppend);
ui->tBtnListInsert->setDefaultAction(ui->actListInsert);
ui->tBtnListDelete->setDefaultAction(ui->actListDelete);

ui->tBtnSelALL->setDefaultAction(ui->actSelALL);
ui->tBtnSelNone->setDefaultAction(ui->actSelNone);
ui->tBtnSelInvs->setDefaultAction(ui->actSelInvs);

QMenu* menu = new QMenu(this);
menu->addAction(ui->actSelALL);//给menu增加Action
menu->addAction(ui->actSelNone);
//menu->addAction(ui->actSelNone);如果写两次,仍然只绑定一次
ui->actSelPopMenu->setMenu(menu);//向Action增加菜单,只有这样,才有下拉

ui->mainToolBar->addAction(ui->actSelPopMenu);//向工具栏添加Action
ui->tBtnSelectItem->setDefaultAction(ui->actSelPopMenu);

ui->mainToolBar->addSeparator();
ui->mainToolBar->addAction(ui->actQuit);

}
void MainWindow::on_actListIni_triggered()
{
ui->listWidget->clear();
QListWidgetItem* item;
QIcon icon(":/images/icons/check2.ico");
bool chk= ui->chkBoxListEditable->isCheckable();
for(int i=0;i<20;++i)
{
QString str=QString::asprintf("item %d",i);
item = new QListWidgetItem(str);
item->setIcon(icon);
item->setCheckState(Qt::Checked);
if(chk)
{
item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEditable|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
}
else
{
item->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
}
ui->listWidget->addItem(item);
}

}

QTreeWidget和QDockWidget

1
2
3
4
5
6
7
8
9
10
11
12
13
	QPixmap curPixmap;
curPixmap.load(filename); //从文件载入图片
on_actZoomFitH_triggered(); //自动适应高度显示

//缩小显示
pixRatio=pixRatio*0.8; //在当前比例基础上乘以0.8

int w=pixRatio*curPixmap.width();// 显示宽度
int h=pixRatio*curPixmap.height();//显示高度

QPixmap pix=curPixmap.scaled(w,h); //图片缩放到指定高度和宽度,保持长宽比例

ui->LabPicture->setPixmap(pix);

QTableWidget

  • 其实所有的item容器都是modul的简化版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ui->tableInfo->resizeRowsToContents();//根据内容调节行高
ui->tableInfo->resizeColumnsToContents();//根据内容调节列宽
//双击或获取焦点后单击,进入编辑状态
ui->tableInfo->setEditTriggers(QAbstractItemView::DoubleClicked | QAbstractItemView::SelectedClicked);
//行的底色交替采用不同颜色
ui->tableInfo->setAlternatingRowColors(checked);
//选择行为:单元格选择
ui->tableInfo->setSelectionBehavior(QAbstractItemView::SelectItems);
//选择行为:行选择
ui->tableInfo->setSelectionBehavior(QAbstractItemView::SelectRows);
//是否显示水平表头
ui->tableInfo->horizontalHeader()->setVisible(checked);
//是否显示垂直表头
ui->tableInfo->verticalHeader()->setVisible(checked);
QDate birth;
birth.setDate(1980,4,7);//初始化一个日期
birth=birth.addDays(20); //日期加20天


//是否显示垂直表头
ui->tableInfo->verticalHeader()->setVisible(checked);
QDate birth;
birth.setDate(1980,4,7);//初始化一个日期
birth=birth.addDays(20); //日期加20天
作者

步步为营

发布于

2024-05-08

更新于

2025-03-15

许可协议