我有一些信息/通知小部件,应在某些事件发生时显示。我的想法是有一个隐藏在左上角的小部件,在需要时显示出来。问题是,如果我只放置一个简单的小部件并显示它,所有内容都会向右移动。我想要的是在该区域顶部显示该小部件(它将隐藏原有内容,但这没关系)。 我不能使用堆叠小部件,因为信息小部件的尺寸与其他小部件不同。如果我只创建一个浮动小部件并将其移动到该区域,则当主窗口移动时它不会移动。 有没有办法做到这一点?
我有一些信息/通知小部件,应在某些事件发生时显示。我的想法是有一个隐藏在左上角的小部件,在需要时显示出来。问题是,如果我只放置一个简单的小部件并显示它,所有内容都会向右移动。我想要的是在该区域顶部显示该小部件(它将隐藏原有内容,但这没关系)。 我不能使用堆叠小部件,因为信息小部件的尺寸与其他小部件不同。如果我只创建一个浮动小部件并将其移动到该区域,则当主窗口移动时它不会移动。 有没有办法做到这一点?
只需动态创建并放置小部件。避免使用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();
}
};
查看QDialog
,当出现错误时创建并执行其中一个,您可以构造它们以具有默认的确定和取消按钮
编辑:抱歉,我是指QMessageBox,请参见下面的代码
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();