IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 学习qte501 -> 正文阅读

[开发工具]学习qte501

QtE5-在舒适图形中学习D和Qt5环境

QtE5是D中Qt5函数绑定(包装器).Qt是巨大的,QtE5只是其中很小一部分.是的,我边学习Qt,边根据需要时绑定,我用D+QtE5来编写所有Qt项目.写本文时,QtE5中约有400Qt函数.
QtE5(WinXP,7,10)32位上,(Win7,10)64位Linux32/64上测试和工作.
除非扩展,不需要安装整个Qt.但需要dmdQt5运行时.
QtE5Qt中名称对应.

// ex2.d
import qte5;// 连接QtE5
import core.runtime;// 解析`com.string`
int main(string[] args) {
      // 加载并初化QtE5
      if (1 == LoadQt(dll.QtE5Widgets, true)) return 1;
      // 创建应用
      QApplication app = new QApplication(&Runtime.cArgs.argc,Runtime.cArgs.argv, 1);
      // 创建标签
      QLabel lb = new QLabel(null);
      //加文本(支持HTML)并渲染
      lb.setText("<h1>哈哈</h1>").show();
     // 循环处理图形事件
      app.exec();
    //完成
      return 0;
}

qt可能不支持gbk.下个示例:

import qte5;
import core.runtime;//处理输入参数
import std.stdio;

// QTextEdit
extern (C) {
    void onKn1(CTest* uk) { (*uk).runKn1(); }
    void onKn2(CTest* uk) { (*uk).runKn2(); }
    void onD(CTest* uk, int n, int ab)   { (*uk).D(ab, n); }
}

class CTest : QFrame {
    QVBoxLayout vblAll;     // 垂直
    QHBoxLayout hb2;        // 水平
    QTextEdit   edTextEdit; //检查编辑器本身
    QPushButton kn1, kn2;
    QAction acKn1, acKn2, acDes1, acDes2;
    QLineEdit lineEdit;     //行编辑器
    QFrame view;
    ~this() {
    // printf("--20--\n"); stdout.flush();
    }
    // 默认构造函数
    this(QWidget parent, QtE.WindowType fl) { //-> 基本构造函数
    super(parent, fl);
    // 水平和垂直对齐器
    vblAll  = new  QVBoxLayout(null);   // 
    hb2     = new  QHBoxLayout(null);   //
    // 编辑器
    edTextEdit = new QTextEdit(this);
    vblAll.addWidget(edTextEdit);
    lineEdit = new QLineEdit(this);
    lineEdit.setNoDelete(true);
    lineEdit.setText("大家好");
    lineEdit.setReadOnly(true);
    // 图像区
    view = new QFrame(this);
    view.setMinimumHeight(200);
setFrameShape( QFrame.Shape.Box );
    view.setFrameShape( QFrame.Shape.Box );
    view.setFrameShadow( QFrame.Shadow.Raised );
    // view.setStyleSheet("background: Red");
    // 风格
    kn1  = new QPushButton("1按钮", this);
    kn2  = new QPushButton("2按钮",  this);
    acKn1 = new QAction(this, &onKn1, aThis); 
    connects(kn1, "clicked()", acKn1, "Slot()");
    acKn2 = new QAction(this, &onKn2, aThis); connects(kn2, "clicked()", acKn2, "Slot()");
    hb2.addWidget(kn1).addWidget(kn2);
    vblAll.addWidget(lineEdit).addWidget(view).addLayout(hb2);
    resize(700, 500); setWindowTitle("Проверка QTextEdit");
    setLayout(vblAll);
}

    void D(int ab, int n) {
    writeln(n, "--------------------------------D---------------------->", ab);
    }
    void runKn1() { //-> 处理1
    writeln("this is Button 1");
    // 请求编辑文件并打开编辑器
    QFileDialog fileDlg = new QFileDialog('+', null);
    string cmd = fileDlg.getOpenFileNameSt("Open file ...", "", "*.d *.ini *.txt");
    if(cmd != "") lineEdit.setText(cmd);
    }
    void runKn2() { //-> 2按钮
    writeln("this is Button 2");
    }

}
int main(string[] args) {
    bool fDebug = true; if (1 == LoadQt(dll.QtE5Widgets, fDebug)) return 1;
    QApplication  app = new QApplication(&Runtime.cArgs.argc, Runtime.cArgs.argv, 1);

    CTest ct = new CTest(null, QtE.WindowType.Window); ct.show().saveThis(&ct);
    QEndApplication endApp = new QEndApplication('+', app.QtObj);
    return app.exec();
}

注意,处理事件程序,必须声明为extern(C).
注意,连接槽:

connects(kn1, "clicked()", acKn1, "Slot()");

QtE5无须Qt元编译器.可相互连接.
QtE5很好的补充了D.

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:30:44  更:2021-11-29 16:31:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/24 2:51:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计