Qt Jambi 界面開發流程

.使用QtDesigner 繪製界面
用Qt最大優點是可以用QtDesigner 來進行可視化設計,這樣大大加快程序開發速度,Jambi也保留這個優點.如果對QtDesigner 比較熟練,這個上手很快.

注意不要直接使用QtSDK中QtDesigner ,它生成設計文件.ui 需要轉換並用JNI才能使用.

2.1 設計界面
這個可以直接在命令行下執行 Jambi 目錄下./designer.sh,即可顯示,它生成是 .jui這樣專用文件

Jambi Designer 的界面

QtDesigner 界面

具體的操作方法可以另行找教程

3.1 生成代碼
.jui 的文件需要用命令行工具JUIC 來轉換成相應java代碼,(這個工具類似於QtSDK 的uic
可以用先把建立一個系統調用腳本

sudo vim /usr/local/bin/juic

JAMBIDIR=/Library/QtJambi-4.8.6

if [ ! -d “$JAMBIDIR” ]; then
echo “Qt Jambi libs don’t seem to be installed. Will attempt to install them:\nsudo sh installer-osx.sh”

sudo sh installer-osx.sh

fi

JAMBIHOME=/Users/pro/Documents/other-workspace/qtjambi-4.8.6

DYLD_LIBRARY_PATH=$JAMBIDIR/lib $JAMBIHOME/bin/juic $@
直接執行生成語句,-pf是指定前綴hello,這樣生成 prefx+dialog.java的名稱,否則固定爲UI_dialog.java

pro$ juic helloDialog.jui -pfUi_hello
updated: Ui_helloDialog

最終生成的java 類有如下命令規則, 前綴+頂層對象名.java
缺省的前綴是 Ui_,

3.3 生成最終代碼
生成 Ui_helloDialog.java

/********************************************************************************
** Form generated from reading ui file ‘helloDialog.jui’
**
** Created by: Qt User Interface Compiler version 4.8.6
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/
import com.trolltech.qt.core.;
import com.trolltech.qt.gui.
;

public class Ui_helloDialog implements com.trolltech.qt.QUiForm
{
public QDialogButtonBox buttonBox;
public QListWidget listWidget;

public Ui_helloDialog() { super(); }

public void setupUi(QDialog Dialog)
{
    Dialog.setObjectName("Dialog");
    Dialog.resize(new QSize(400, 300).expandedTo(Dialog.minimumSizeHint()));
    buttonBox = new QDialogButtonBox(Dialog);
    buttonBox.setObjectName("buttonBox");
    buttonBox.setGeometry(new QRect(30, 240, 341, 32));
    buttonBox.setOrientation(com.trolltech.qt.core.Qt.Orientation.Horizontal);
    buttonBox.setStandardButtons(com.trolltech.qt.gui.QDialogButtonBox.StandardButton.createQFlags(com.trolltech.qt.gui.QDialogButtonBox.StandardButton.Cancel,com.trolltech.qt.gui.QDialogButtonBox.StandardButton.Ok));
    listWidget = new QListWidget(Dialog);
    listWidget.setObjectName("listWidget");
    listWidget.setGeometry(new QRect(0, 0, 401, 221));
    retranslateUi(Dialog);
    buttonBox.accepted.connect(Dialog, "accept()");
    buttonBox.rejected.connect(Dialog, "reject()");

    Dialog.connectSlotsByName();
} // setupUi

void retranslateUi(QDialog Dialog)
{
    Dialog.setWindowTitle(com.trolltech.qt.core.QCoreApplication.translate("Dialog", "Dialog", null));
} // retranslateUi

}

3.4 測試生成效果
寫一個主程序Main.java來調用這個類

import com.trolltech.qt.gui.*;

public class Main
{

public static void main(String args[])
{

    QApplication.initialize(args);

//這種寫法是抄例子的
QDialog d = new QDialog();
Ui_helloDialog ui = new Ui_helloDialog();
ui.setupUi(d);
d.exec();

     QApplication.execStatic();
     QApplication.shutdown();


}

}
編譯

javac Ui_helloDialog.java Main.java

運行

java -XstartOnFirstThread Main

最終效界,可見跟設計一模一樣

最終運行效果

三.使用QSS定製界面
Qt另一大優點就是可以採用Qt Style Sheet 來定製所有控件外觀,這樣很容易開發出比較華麗UI界面.並且能動態切換不同主題.

參考鏈接:https://www.jianshu.com/p/6d7f8a560169

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章