4 常用界面设计组件

192 阅读2分钟

字符串与数值转换

在这里插入图片描述

QString常用功能

在这里插入图片描述

SpinBox

在这里插入图片描述

image-20211222103457610

其他数字输入和显示组件

image-20211222103706428

日期与字符串之间的转换

image-20211222110646314

image-20211222110803915
在这里插入图片描述

    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

image-20211222112726928

  • 以换行符分隔块
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

image-20211223091253317

image-20211223092122547

image-20211223111817365

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

在这里插入图片描述

image-20211223141023636

	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

在这里插入图片描述

image-20211224091037045

  • 其实所有的item容器都是modul的简化版本
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天
	```