私が気づいた奇妙な動作を示す簡単なスニペットを作成しました。それでおしまい:
#include <QCoreApplication>
#include <QLineEdit>
class MyObject : public QWidget
{
public:
explicit MyObject(QWidget *parent = 0) : QWidget(parent) {
editor = new QLineEdit(this);
}
void setValue(const QString &s) const {
editor->setText(s);
editor->setReadOnly(true);
editor->setMaxLength(s.length());
}
private:
QLineEdit *editor;
};
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
return app.exec();
}
MyObject::setValue
function にはconst
指定子がありますが、このコードはうまくコンパイルされています。setText
、setReadOnly
およびsetMaxLength
関数は ではないことに注意してくださいconst
。
void setText(const QString &);
void setReadOnly(bool);
void setMaxLength(int);
そのような行動の原因を知りたいだけですか?MingGW 4.6.2 で Qt 4.7.4 を使用しています。