我有一些信息/通知小部件应该在某些情况发生时显示。我的想法是让一个隐藏在左上角的小部件,并在需要时显示。问题是,如果我只是放置简单的小部件并显示它,一切都将被移动到右侧,我想要的是在该区域中显示该小部件(它将隐藏那里的内容,但没关系)。 我不能使用堆叠小部件,因为信息小部件与其他小部件的维度不同。如果我只是创建浮动小部件并将其移动到该区域,则在移动主窗口时它不会移动。 有什么方法可以做到吗?
答案 0 :(得分:2)
只需动态创建和放置小部件即可。避免使用UI来放置窗口小部件,因为窗口小部件的位置由布局管理。
编辑:记得在对话框初始化之后创建小部件。如果您不注意这一点,您的小部件将插入底部。
class Dialog : public QDialog
{
Q_OBJECT
std::unique_ptr<Ui::Dialog> _ui;
QWidget* _widgetOnTheTop;
public:
Dialog(QWidget* parent)
: QDialog(parent), _ui(new Ui::Dialog)
{
_ui->setupUi(this);
_widgetOnTheTop = new QPushButton(this);
_widgetOnTheTop->setGeometry(10,10,100,35);
_widgetOnTheTop->show();
}
};
答案 1 :(得分:0)
查看QDialog
创建并在发生错误时执行其中一个,您可以构建它们以使用默认的取消按钮
编辑:对不起,我的意思是QMessageBos,请参阅下面的代码
QMessageBox error_message(QMessageBox::Icon::Critical, "Title of the window","Some Text about the error to show the user", QMessageBox::StandardButtons(QMessageBox::Yes | QMessageBox::Cancel), this);
error_message.exec();