
代码:
简单用户界面示例展示的是怎么把那些由Qt设计师创建的用户界面( .jui )文件用来实现程序的用户界面。
这个示例的主窗口显示出一个文本浏览器和一个Open Dialog 按钮,这个按钮可以用来访问一个有输入区域的对话框。当这些输入区域都填充满咯
,或者是对话框被取消咯的时候,输入结果会被放置到文本浏览器中。
SimpleUIExample类 是从QMainWindow 派生的,并且提供一个由 Ui_SimpleUIExampleMainWindow 类的实例实现的用户界面 :
public class SimpleUIExample extends QMainWindow {
public static void main(String[] args) {
QApplication.initialize(args);
SimpleUIExample mainw = new SimpleUIExample();
mainw.show();
QApplication.exec();
}
Ui_SimpleUIExampleMainWindow mainWindowUi = new Ui_SimpleUIExampleMainWindow();
用户界面类的实例被实现为SimpleUIExample 类的一个成员。
用户界面类是在构建这个示例的时候从一个用户界面文件中生成出来的,它提供一个 setupUi() 方法,我们在 SimpleUIExample 的构造 函数中使用这个方法来建立用户界面:
public SimpleUIExample() {
// Place what you made in Designer onto the main window.
mainWindowUi.setupUi(this);
setWindowIcon(new QIcon("classpath:com/trolltech/images/qt-logo.png"));
// Connect the OpenDialog button to the showDialog method.
mainWindowUi.pushButton_OpenDialog.clicked.connect(this, "showDialog()");
}
我们还设置窗口的图标,并且将用户界面中定义的一个按钮连接到这个类中的showDialog()槽:
private void showDialog() {
// Make the dialog.
Ui_SimpleUIExample dialogUi = new Ui_SimpleUIExample();
QDialog dialog = new QDialog(this);
dialogUi.setupUi(dialog);
对话框自己也使用一个从.jui文 件生成的用户界面类,这个文件是我们以前使用类似的方法制作出来的。在这里 ,我们在新构建的 QDialog 实例上调用 Ui_SimpleUIExample 实例的 setupUi() 方法。
一旦建立好咯,对话框就以正常的方式执行:
String result = "";
if (dialog.exec() == QDialog.DialogCode.Accepted.value()) {
result += "Name: " + dialogUi.lineEdit_Name.text() + "n";
result += "E-Mail: " + dialogUi.lineEdit_Email.text() + "n";
// Get rest of dialog information here
} else {
result = "Cancelled by user.";
}
mainWindowUi.textBrowser.setText(result);
}
}
如果用户接受咯对话框,那么我们读取它所包含的输入部件 中的内容,再将读取的结果写入到主窗口的文本浏览器部件中。如果用户取消咯对话框,那么就会将"Cancelled by user."写入到文本浏览器中。
main()方法被定义为 SimpleUIExample 类的一部分。它构造必需的 QApplication 实例 、构造并且显示出 SimpleUIExample 类的一个实例、再执行程序的事件循环:
public static void main(String[] args) {
QApplication.initialize(args);
SimpleUIExample mainw = new SimpleUIExample();
mainw.show();
QApplication.exec();
}
当事件循环结束运行时,示例程序退出。一般地,当用户关 闭主窗口时会发生这个。
HxLauncher: Launch Android applications by voice commands