qt编程,请教个大家这里要怎么写,左边是个comboBox类,可选择1,2,3三个值,后面的line edit可根据

栏目:资讯发布:2023-11-08浏览:1收藏

qt编程,请教个大家这里要怎么写,左边是个comboBox类,可选择1,2,3三个值,后面的line edit可根据,第1张

要根据comboBox的选项不同来改变LineEdit的输入数值范围我们可以利用QComboBox的

void currentIndexChanged ( const QString & text ) 这个信号,但选择改变的时候就会

被emit;

要设定LineEdit的输入数值范围我们可以用setValidator()来设置LineEdit的正则表达式。

然后再自定义一个槽根据index来为lineEdit设置不同的Validator。

connect 信号currentIndexChanged 和这个槽 就可以完成这个功能。

偶写的程序

#include "dialogh"

#include <QtGui>

Dialog::Dialog(QWidget parent) :

QDialog(parent)

{

comboBox = new QComboBox;

lineEdit = new QLineEdit;

comboBox->addItem("1");

comboBox->addItem("2");

comboBox->addItem("3");

QHBoxLayout layout = new QHBoxLayout;

layout->addWidget(comboBox);

layout->addWidget(lineEdit);

this->setLayout(layout);

connect(comboBox,SIGNAL(currentIndexChanged(int)),

this,SLOT(selectChanged(int)));

this->selectChanged(0);

}

void Dialog::selectChanged(int index)

{

QRegExp rx;

switch(index)

{

case 0:

rxsetPattern("^\\d$");

break;

case 1:

rxsetPattern("^\\d{0,2}$");

break;

case 2:

rxsetPattern("^\\d{0,3}$");

break;

default:

break;

}

QValidator validator = new QRegExpValidator(rx, this);

lineEdit->setValidator(validator);

}

Qt的绘图比较特别,也是类似MVC方式(MFC是直接绘图,也可类似MVC),数据和视图分开,paintEvent里只要写绘图代码。其它的地方处理数据,更新完了数据,直接update就会重绘。

这个是算法问题,和QT本身没有关系

这样的算法可以自行设计的

1。转字符串。将文件数据的所有字节转换为16位字符串,全部存储即可

2。字符串转。将文本数据每两个字符的文本数字转换为1个字节数据,然后全部存储即可

################################################################

我上面的是和字符串之间互转的一种思路而已,楼主其实可以根据具体实现要求设计算法

根据上述所述算法,我简单说一下思路吧,这里使用C标准库函数完成,当然也可以使用QT中的文件操作类,看个人喜好了:

1。文件读写

fopen,fclose,fread,fwrite,feof,ftell,fseek

fopen,fclose 用于打开关闭文件

fread,fwrite 用于读写文件数据

feof 用于判断文件指针是否到末尾

ftell 判断当前文件指针位置

fseek 用于移动文件指针

2。转字符串

使用fread读取文件二进制数据到内存缓冲区,将每个字节(8位)的16进制形式转换为字符串,比如EE-> 转换为字符串"EE"

然后使用fwrite存储到目标文本文件

3。字符串转

使用fread每两个字节读取一次,将读取的两字节字符串,将每个字节分别转换为字符所代表的16进制值,比如字符“E”,转换为整数E(16进制),然后每两个16进制数组成一个,拼装为一个8位整数。具体可以这样,将高位数逻辑左移4位,然后加上低位即可

最后使用fwrite写入文件

qt编程,请教个大家这里要怎么写,左边是个comboBox类,可选择1,2,3三个值,后面的line edit可根据

要根据comboBox的选项不同来改变LineEdit的输入数值范围我们可以利用QComboBox的void currentIndexChanged ( const QString & text )...
点击下载
热门文章
    确认删除?
    回到顶部