首页| 论坛| 消息

标题:【提问】请教一下QT中的QMULTILINEEDIT中TAP键禁用~~!!
作者:girl2008
日期:2005-08-28 11:07
内容:

如题~~!!!文字


#1 [XChinux 08-29 08:37]
啊???我怎么没在Qt 4.0.1的Qt Assistant里找到QMultiLineEdit这个类?楼主所说的是Qt 3.x里面的?
#2 [girl2008 08-29 14:35]
我用的是qt-2.3.7的,后续的版本都是用的QTEXTEDIT,没有QTMULTILINEEDIT这个类了
#3 [XChinux 08-29 21:23]
基本原理就是:截取它的KeyPress事件,然后识别它的按键,如果是tab的话,就忽略。
源代码如下:
#include
#include
#include
class MyTextEdit:public QTextEdit
{
public:
MyTextEdit(QWidget *parent = 0);
~MyTextEdit();
private:
void keyPressEvent(QKeyEvent *event);
void keyReleaseEvent(QKeyEvent *event);
};
MyTextEdit::MyTextEdit(QWidget *parent)
:QTextEdit(parent)
{
}
MyTextEdit::~MyTextEdit()
{
}
void MyTextEdit::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Tab)
{
event->ignore();
}
else
{
QTextEdit::keyPressEvent(event);
}
}
void MyTextEdit::keyReleaseEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Tab)
{
event->ignore();
}
else
{
QTextEdit::keyReleaseEvent(event);
}
}
int main(int argc, char **argv)
{
QApplication app(argc, argv);
MyTextEdit textedit;
textedit.resize(600, 400);
textedit.show();
return app.exec();
}
#4 [girl2008 08-30 15:54]
我之前试过,tab是没有起作用,但是我现在想要它tab键后跳转到下一个控件,像lineedit一样,试过不行,我再去看看。。。。谢谢XChinux了~!!!
#5 [XChinux 08-30 16:07]
嘿嘿,刚才我试验的,把TextEdit里的tab键屏蔽了之后,它自动就设为Taborder了,自动跳转到下一个部件了。
#include
#include
#include
#include
#include
#include
#include
class MyTextEdit:public QTextEdit
{
public:
MyTextEdit(QWidget *parent = 0);
~MyTextEdit();
private:
void keyPressEvent(QKeyEvent *event);
void keyReleaseEvent(QKeyEvent *event);
};
MyTextEdit::MyTextEdit(QWidget *parent)
:QTextEdit(parent)
{
}
MyTextEdit::~MyTextEdit()
{
}
void MyTextEdit::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Tab)
{
event->ignore();
}
else
{
QTextEdit::keyPressEvent(event);
}
}
void MyTextEdit::keyReleaseEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Tab)
{
event->ignore();
}
else
{
QTextEdit::keyReleaseEvent(event);
}
}
class MyWidget: public QMainWindow
{
public:
MyWidget(QWidget *parent = 0);
~MyWidget();
private:
MyTextEdit *myTextEdit;
QLineEdit *lineEdit;
QPushButton *pushButton;
};
MyWidget::MyWidget(QWidget *parent)
: QMainWindow(parent)
{
resize(QSize(400, 300).expandedTo(minimumSizeHint()));
pushButton = new QPushButton(this);
pushButton->setGeometry(QRect(9, 268, 382, 23));
lineEd ..

<< 1 2 >> (1/2)

回复 发表
主题 版块