第二章:第一节(一个简单的标签显示)

一个查找框的教程,就是将第一章全部内容进行整合复习


public class 第一节_子类化QDialog extends QDialog{

/**
* @param args
*/
QLineEdit 可写东西的行;
QCheckBox 全词匹配选项;
QCheckBox 上一个选项 ;
QPushButton 查找按钮;
public static void main(String[] args) {
// TODO Auto-generated method stub
QApplication.initialize(args);

new 第一节_子类化QDialog().show();

QApplication.exec();
}

public 第一节_子类化QDialog(){

QLabel 查找标签 = new QLabel(tr("查找(&c)")); //新建一个查找标签, &c表示标签有了快捷键 就是ALT+o,tr是Jambi中String的一种表现方式,以后当程序使用多语言显示的话会使用到它
可写东西的行 = new QLineEdit(); //新建一个编辑行
查找标签.setBuddy(可写东西的行); //意思就是按下标签的快捷键ALT+o,鼠标焦点会移动到"可写东西的行"的上面

全词匹配选项 = new QCheckBox(tr("全词匹配(&m)")); //新建一个选项按钮,方框的
上一个选项 = new QCheckBox(tr("查找上一个(&b)")); //新建一个选项按钮,方框的

查找按钮 = new QPushButton(tr("查找(&f)")); //新建一个查找的按钮
查找按钮.setDefault(true); //设置成按下回车建时就触发查找按钮事件
查找按钮.setEnabled(false); //设置查找按钮为灰显

QPushButton 关闭按钮 = new QPushButton(tr("关闭(&o)")); //新建一个关闭的按钮

可写东西的行.textChanged.connect(this,"改变查找按钮的灰显(String)"); //事件,表示当可写东西的行的文本发生变化时运行改变查找按钮的灰显(String)这个方法,这个事件到了参数,参数是根据具体事件来的,由于时间是属于文本变化,文本内容属于String类型,所以,表示当文本改变时,将可写东西的行中的文本当作参数传到改变查找按钮的灰显(String)这个方法中
查找按钮.clicked.connect(this, "查找事件()"); //事件,表示当点击查找按钮后运行查找事件()这个方法
关闭按钮.clicked.connect(this, "close()"); //事件,表示当点击关闭按钮后运行close()这个方法,close()方法是QT内部的方法,所以就不用自己建

QHBoxLayout 上左边的布局 = new QHBoxLayout(); //新建一个横向的布局
上左边的布局.addWidget(查找标签); //将查找标签放进去
上左边的布局.addWidget(可写东西的行); //将可写东西的行放进去

QVBoxLayout 左边的布局 = new QVBoxLayout();//新建一个竖向的布局
左边的布局.addLayout(上左边的布局); //将上左边的布局放到左边的布局第一个位置
左边的布局.addWidget(全词匹配选项); //将全词匹配选项放到左边的布局第二个位置
左边的布局.addWidget(上一个选项); //将上一个选项放到左边的布局第三个位置

QVBoxLayout 右边的布局 = new QVBoxLayout();//新建一个竖向的布局
右边的布局.addWidget(查找按钮); //将查找按钮放到右边的布局的第一个位置
右边的布局.addWidget(关闭按钮); //将关闭按钮放到右边的布局的第二个位置
右边的布局.addStretch(); //添加弹簧,为了填充上面两个按钮的空白处,为了布局不难看

QHBoxLayout 总体的布局 = new QHBoxLayout(); //新建一个横向的布局
总体的布局.addLayout(左边的布局); //将左边的布局放到总体的布局的第一个位置
总体的布局.addLayout(右边的布局); //将右边的布局放到总体的布局的第二个位置

setLayout(总体的布局); //当前窗体使用总体的布局来布局

setWindowTitle(tr("查找窗体")); //设置窗体标题
setFixedHeight(sizeHint().height()); //setFixedHeight表示让窗体有个固定的高度,sizeHint().height()表示返回一个理想的窗体部件的尺寸大小

}

//对应上面的查找事件()
void 查找事件(){
String text = 可写东西的行.text(); //得到行的内容,就是你填的
Qt.CaseSensitivity 类型 = 全词匹配选项.isChecked() ? Qt.CaseSensitivity.CaseSensitive:Qt.CaseSensitivity.CaseSensitive;//公式就不说了,意思就是如果选了全词匹配选项,则根据全词匹配查找,否则不根据,问号后面两个表达式是QT内部的,只要知道意思就行了

if(上一个选项.isChecked()){ //如果被选中了
向上找(text,类型); //不解释
}else{
向下找(text,类型);//不解释
}
}
//不解释
void 向上找(String text,Qt.CaseSensitivity 类型){
//书上说下一章再写
}
//不解释
void 向下找(String text,Qt.CaseSensitivity 类型){
//书上说下一章再写
}

void 改变查找按钮的灰显(String text){//不解释
查找按钮.setEnabled(!text.isEmpty()); //text.isEmpty()表示文本是不是为空,为空返回true,为空设置为false.
}

}


如图:
[img]http://dl.iteye.com/upload/attachment/253407/7694be4a-bc36-37e4-9564-f6a048892f2d.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值