Si desea la capacidad de copiar y pegar que tiene QErrorMessage, puede crear su propio QDialog personalizado. Primero haría un dialog.ui con un QTextEdit (textEdit) y un QPushButton (okButton). Asegúrese de nombrar el objeto de diálogo en .ui algo significativo (MessageDialog en este caso). El código podría ser algo como esto:
En su messagedialog.h:
class MessageDialog : public QDialog, public Ui::MessageDialog
{
Q_OBJECT
private:
Ui::MessageDialog *ui;
public:
MessageDialog(QWidget * parent = 0, QString msg = "", uint w = 200, uint h = 100);
private slots:
void on_okButton_clicked();
};
En su messagedialog.cpp:
MessageDialog::MessageDialog(QWidget *parent, QString msg, uint w, uint h) : QDialog(parent), ui(new Ui::MessageDialog)
{
ui->setupUi(this);
this->setFixedSize(w, h);
this->ui->textEdit->setFixedSize((w - 20), (h - 50));
this->ui->textEdit->setGeometry((this->geometry().left() + 10), 10, (ui->okButton->size().width()), (ui->okButton->size().height()));
// I personally like to get rid of the ? next to close in the upper right, minimize, and maximize
this->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
this->setWindowFlags(windowFlags() & ~Qt::WindowMinimizeButtonHint);
this->setWindowTitle("Message");
this->ui->textEdit->setText(msg);
this->ui->okButton->setGeometry((this->geometry().center().x() - (this->ui->okButton->width()/2)), (this->geometry().bottom() - (this->ui->okButton->height())) - 5, (ui->okButton->size().width()), (ui->okButton->size().height()));
this->setFocus();
}
void MessageDialog::on_okButton_clicked()
{
this->close();
}
Entonces dondequiera que desee utilizarlo:
QDialog *messageDialog = new MessageDialog(this, msg);
messageDialog->exec();
¡Gracias! ¡Esto soluciona totalmente mis problemas! – Uko