Qt应用程序设计(总)

一:常用设置

1、获取显示器参数

QRect desktopRect;
desktopRect = QApplication::desktop()->availableGeometry();
qDebug("DesktopView Rect(%d, %d, %d, %d)", desktopRect.x(), desktopRect.y(),
		desktopRect.width(), desktopRect.height());

2、设置控件位置大小

this->setGeometry(x, y, width, height);

3、设置控件边角弧度及其颜色

Label->setStyleSheet("border-radius:20px; color:black; background-color:rgba(100, 100, 100, 10%)");

4、设置字体,对齐

QFont font;
font.setPixelSize(15);
Label->setFont(font);
Label->setAlignment(Qt::AlignTop);

二:控件

1、QListWidget

添加对象:
listwidget->addItem(new QListWidgetItem(QIcon(QObject::tr(":/res/demo.png")), QObject::tr("Welcome Using")));

操作具体对象:
listwidget->item(index);

2、QComboBox

comboBox->addItems(QStringList list);

三:文件

1、读取文件内容

QFile file(path);
QTextStream infoInput(&file);
QString lineStr;

while (!infoInput.atEnd()) {
    lineStr = infoInput.readLine();
}

2、对话框中选择文件

fileDialog = new QFileDialog(this);
fileDialog->setWindowTitle(tr("打开文件"));
fileDialog->setDirectory(".");
fileDialog->setNameFilter(tr("*"));
fileDialog->setFileMode(QFileDialog::ExistingFiles);
fileDialog->setViewMode(QFileDialog::Detail);

QStringList fileNames;
if (fileDialog->exec()) {
    fileNames = fileDialog->selectedFiles();
}
for (auto path : fileNames){
    qDebug() << path << endl;
}

3、修改文件内容

QString strall;
QString lineStr;
QString newStr;

QFile readfile(saveFilePath);
if(!readfile.open(QIODevice::ReadOnly)) {
    QMessageBox::warning(this, "save files", "save files failed", QMessageBox::Yes);
    return;
}
QTextStream stream(&readfile);
while (!stream.atEnd()) {
    lineStr = stream.readLine();

    lineStr.replace(0, lineStr.length(), newStr);
    strall = strall + lineStr + '\n';

}
readfile.close();

QFile writefile(saveFilePath);
if(!writefile.open(QIODevice::WriteOnly)) {
    QMessageBox::warning(this, "save files", "save files failed", QMessageBox::Yes);
    return;
}
QTextStream wrtstream(&writefile);
wrtstream<<strall;
writefile.close();

4、通过对话框设置文件路径

pathStr = QFileDialog::getExistingDirectory(this, "choose src Directory", "/");

if (pathStr.isEmpty()){
    return;
} else {
    qDebug()<<pathStr;
}

四:信号与槽

1、通用按键类

.h:
public slots:
    void QPushButton_Slot();
.cpp:
connect(QPushButton button, SIGNAL(clicked()), this, SLOT(QPushButton_Slot()));

2、信号触发槽函数

.h:
public slots:
    void Function_Slot(int);
.cpp:
connect(this, SIGNAL(Function_Signal(int)), this, SLOT(Function_Slot(int)));
emit Function_Signal(int);

3、lambda表达式

.h:
public slots:
    void QPushbutton_Slot(int);
.cpp:
connect(QPushButton button, &QPushButton::clicked, this, [=](){QPushButton_Slot(int);});

4、多个按键关联同一个槽函数

.h:
public slots:
    void QPushButton_Slot();
.cpp:
for(i=0; i < n; i++){
    Btn[i] = new QPushButton(QString::number(i));
    Btn[i]->setObjectName(QString::number(i)); //设置名称
    connect(Btn[i], SIGNAL(clicked()), this, SLOT(QPushButton_Slot()));
}

void QPushButton_Slot() 
{
    QString btnName = QObject::sender()->objectName();
    int index = btnName.mid.toInt();
    switch(index){}
}

五:Resources

1、设置图片qrc

1、this->setWindowIcon(QIcon(":/res/demo.png"));
2、QListWidget
listwidget->item(index)->setIcon(QIcon(":/res/demo.png"));
3、QLabel
3.1:
QPixmap pixmap(":res/demo.png");
label->setPixmap(pixmap);
3.2:
label->setPixmap(QPixmap(":/res/demo.png"));

后续根据工作经历会随时更新... ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值