#include "donewdialog.h" #include<QColorDialog> DonewDialog::DonewDialog(QWidget *parent) : QDialog(parent) //ui(new Ui::DoNewDialog) { QVBoxLayout *layout = new QVBoxLayout(this); numberEdit1 = new QLineEdit(this); numberEdit2= new QLineEdit(this); numberEdit3 = new QLineEdit(this); layout->addWidget(numberEdit1); layout->addWidget(numberEdit2); layout->addWidget(numberEdit3); QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); layout->addWidget(buttonBox); connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); backColor=Qt::white; fileName=tr("未命名.png"); } DonewDialog::~DonewDialog() { } int DonewDialog::getWidth() { int width = numberEdit1->text().toInt(); return width; } int DonewDialog::getHeight() { int width = numberEdit2->text().toInt(); return width; } QColor DonewDialog::getBackColor() { return backColor; } QString DonewDialog::getfileName() { fileName=numberEdit3->text(); return fileName; } void DonewDialog::on_toolButton_clicked() { QColorDialog donewdialog(this); donewdialog.setOption(QColorDialog::ShowAlphaChannel); // 如果需要支持透明度通道,可以设置此选项 donewdialog.setCurrentColor(backColor); // 设置当前选中的颜色 if (donewdialog.exec() == QColorDialog::Accepted) { backColor = donewdialog.selectedColor(); // 获取选择的颜色 update(); // 这里可以将选中的颜色应用到需要的地方,例如将其设置为某个组件的背景色等 } }
时间: 2024-04-13 08:29:05 浏览: 89
qcolordialog_p.rar_Linux/Unix编程_Unix_Linux_
根据你提供的代码,你想要通过一个工具按钮(toolButton)来打开颜色对话框并选择背景颜色。以下是对代码进行的一些修改:
```cpp
void DonewDialog::on_toolButton_clicked()
{
QColorDialog dialog(this);
dialog.setOption(QColorDialog::ShowAlphaChannel); // 如果需要支持透明度通道,可以设置此选项
dialog.setCurrentColor(backColor); // 设置当前选中的颜色
if (dialog.exec() == QColorDialog::Accepted) {
backColor = dialog.selectedColor(); // 获取选择的颜色
update(); // 这里可以将选中的颜色应用到需要的地方,例如将其设置为某个组件的背景色等
}
}
```
在 `on_toolButton_clicked()` 槽函数中,我们创建了一个 `QColorDialog` 对象,并设置了透明度通道选项和当前选中的颜色。然后,我们检查对话框是否被接受(即用户点击了“确定”按钮),如果是,则获取选择的颜色并将其应用到 `backColor` 变量中。
此外,你还需要在 `donewdialog.h` 头文件中添加以下私有成员变量:
```cpp
private:
QColor backColor;
```
这样,当用户点击工具按钮时,将弹出一个颜色对话框供用户选择背景颜色。选中的颜色将存储在 `backColor` 成员变量中,你可以根据需要将其应用到需要的地方。
希望这能满足你的需求!如果有任何问题,请随时提问。
阅读全文