小编go4*_*sri的帖子

QDialog exec()并获取结果值

我有子类QDialog实现类似的功能QMessageBox(我需要这个以允许自定义).它有一条短信和OK,取消按钮.我正在显示对话框exec()以使其阻止.现在,当用户单击"确定/取消"时,如何返回true/false值?

我尝试将按钮连接到setResult()然后,单击时返回结果值,但是1.单击按钮不会关闭对话框2.返回值不正确.以下是我写的代码.我认为我在exec/result部分错了 - 但我不知道如何解决它.

class MyMessageBox : public QDialog {
    Q_OBJECT

private slots:

    void onOKButtonClicked() { this->setResult(QDialog::Accepted); }
    void onCancelButtonClicked() { this->setResult(QDialog::Rejected); }

public:
    MyMessageBox(QMessageBox::Icon icon, const QString& title,
        const QString& text, bool showCancelButton = true,
        QWidget* parent = 0);

    virtual void resizeEvent(QResizeEvent* e);

    QDialog::DialogCode showYourself()
    {
        this->setWindowModality(Qt::ApplicationModal);
        this->exec();
        return static_cast<QDialog::DialogCode>(this->result());
    }
};
Run Code Online (Sandbox Code Playgroud)

用户将实例化该类并调用showYourself(),它将返回该值并关闭(并删除)该对话框.

我发布了部分代码.如果您需要更多,请告诉我,我会发布完整版本.

c++ qt qdialog

22
推荐指数
3
解决办法
7万
查看次数

输入矩阵到opencv kmeans聚类

这个问题特定于opencv:opencv文档中给出的kmeans示例有一个双通道矩阵 - 特征向量的每个维度都有一个通道.但是,其他一些例子似乎表明它应该是一个单通道矩阵,沿着列有特征,每个样本有一行.哪个是对的?

如果我有一个5维特征向量,我应该使用的输入矩阵:这一个:

cv::Mat inputSamples(numSamples, 1, CV32FC(numFeatures))
Run Code Online (Sandbox Code Playgroud)

或者这个:

cv::Mat inputSamples(numSamples, numFeatures, CV_32F)
Run Code Online (Sandbox Code Playgroud)

opencv cluster-analysis k-means

6
推荐指数
1
解决办法
3万
查看次数

子类化 QMessageBox

我需要自定义QMessageBox。我需要删除框架和标题栏并添加我自己的标题栏和关闭按钮。还需要更换标准按钮,并可能重做框的背景颜色。

是否可以对其进行子类化并实现上述目标?有这方面的例子吗?或者,我应该继承 Dialog 并创建自己的消息框吗?

qt qmessagebox

5
推荐指数
1
解决办法
3171
查看次数

标签 统计

qt ×2

c++ ×1

cluster-analysis ×1

k-means ×1

opencv ×1

qdialog ×1

qmessagebox ×1