void MainWindow::on_action_search_triggered() { // QApplication::setStyleSheet("QWidget { background-color: white; }"); setStyleSheet(""); setWindowOpacity(1.0); QPalette pal(palette()); pal.setColor(QPalette::Background, Qt::white); setAutoFillBackground(true); setPalette(pal); m_searchwin = new add(this); m_searchwin->setWindowModality(Qt::WindowModal); // m_searchwin->resize(560, 440); // 设置窗口大小 // m_searchwin->move(600, 350); // 设置窗口初始位置为 (300, 300) m_searchwin->show(); connect(m_searchwin, &add::searchTextChanged, [=](const QString &searchText) { QModelIndex foundIndex; for (int i = 0; i < m_model->rowCount(localindex.parent()); ++i) { QModelIndex index = localindex.sibling(i, 0); //QString text = index.data(Qt::DisplayRole).toString(); QString text1 = m_model->fileName(index); //查看名称 if (text1.contains(searchText)) { foundIndex = index; break; } } if (foundIndex.isValid()) { ui->treeView->scrollTo(foundIndex, QAbstractItemView::PositionAtCenter); ui->treeView->setCurrentIndex(foundIndex); } if (m_searchwin != nullptr) { m_searchwin->close(); delete m_searchwin; m_searchwin = nullptr; } }); }
时间: 2024-02-14 07:13:54 浏览: 27
从代码中可以看出,在 `on_action_search_triggered()` 函数中,你设置了窗口的背景色为白色,但是在创建 `add` 窗口之前才进行的设置,因此可能并不起作用。你可以尝试将这段代码移动到创建 `add` 窗口之前,例如:
```c++
void MainWindow::on_action_search_triggered() {
// 设置窗口样式为默认样式
setStyleSheet("");
setWindowOpacity(1.0);
// 设置窗口的背景色为白色
QPalette pal(palette());
pal.setColor(QPalette::Background, Qt::white);
setAutoFillBackground(true);
setPalette(pal);
m_searchwin = new add(this);
// ...
}
```
将设置窗口背景色的代码放在创建窗口之前,这样窗口在显示之前就已经设置了背景色,应该就可以正常显示了。
另外,如果你使用了自定义样式表(stylesheet),可能会覆盖窗口的背景色设置,导致窗口仍然是透明的。这种情况下,你可以尝试将自定义样式表中的背景色设置移除,或者将它更改为白色背景。希望这些方法能够帮助你解决问题。
相关问题
error: no 'void MainWindow::on_pushButton_clicked()' member function declared in class 'MainWindow' void MainWindow::on_pushButton_clicked() ^
这个错误是因为在MainWindow类中没有声明on_pushButton_clicked()成员函数。在你的MainWindow类中,你可能忘记了声明或者定义这个函数。要解决这个错误,你需要在MainWindow类的头文件或者源文件中添加对应的函数声明或者定义。
例如,在头文件(.h)中添加函数声明:
```cpp
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
// ...
private slots:
void on_pushButton_clicked(); // 声明按钮点击事件的处理函数
};
```
然后,在源文件(.cpp)中实现该函数:
```cpp
void MainWindow::on_pushButton_clicked()
{
// 处理按钮点击事件的代码
// ...
}
```
请确保你的头文件和源文件中都包含了正确的函数声明和定义,并且函数名与信号槽连接的名字一致。
void MainWindow::disable_widget()和void MainWindow::enable_widget()区别
这两个函数的区别在于它们的功能不同。
`void MainWindow::disable_widget()` 是一个自定义的函数,它的作用是禁用(disable)窗口中的部件(widget),例如按钮、文本框等。通常在某些特定情况下,需要禁止用户对界面进行操作,这时就可以调用该函数来实现。
`void MainWindow::enable_widget()` 同样是一个自定义的函数,它的作用是启用(enable)窗口中的部件。如果之前某些部件被禁用了,现在需要恢复它们的可用状态,那么就可以调用该函数来实现。
因此,这两个函数的作用是相反的。其中,`disable_widget()` 用于禁止部件,而 `enable_widget()` 用于启用部件。