• 工作日誌:用切換畫面騙騙看


    原本高高興興的要釋出了,結果發現Release版會當掉,後來檢查是因為我把指標提早釋放了。 但很奇怪啊,Debug版居然毫無問題…這是什麼巫術? 講到這個就想到為了看是哪個環節有問題,讓程式寫log檔,結果基本上什麼都沒抓到,因為一開始就當了嘛…

    這次改版除了之前一直提的核心部份,外部的改良就是在於各位可以用腳本建立各別的畫面。 這個「畫面」是由Qamer::Screen提供,它加了一些特殊的signals/slots好把「我要換畫面」這一類的訊息傳出去。 設定檔是data/script/screen_main.lua,所以請別砍它。

    你可以用另外的檔案設計介面,如screen_main.lua內容:

    -- 讀取ui設定檔:data/script/screen_mainmenu.lua
    mainmenu = require("./data/script/screen_mainmenu");
    -- 加入screen,其id為1
    window:addScreen(1, mainmenu);

    其中id 0是保留給戰鬥畫面,所以不可以使用。 另外,第一個加入的畫面會成為一開始顯示的畫面。

    screen_mainmenu.lua

    -- 建立Screen
    local screen = qt.new_qobject(qt.meta.Screen);
    
    local mainlayout = qt.new_qobject(qt.meta.QVBoxLayout);
    qt.ui.layout_add(screen, mainlayout);
    
    local startBtn = qt.new_qobject(qt.meta.QPushButton);
    startBtn.text = "&Start";
    -- 指定按鈕按下時,要求前往id為0的「畫面」,也就是戰鬥畫面。
    -- toScreen是動態屬性,目前只支援使用QPushButton增加動態屬性。
    startBtn.toScreen = 0;
    qt.connect(startBtn, "clicked()", screen, " 大专栏  工作日誌:用切換畫面騙騙看;when_widgetToScreen_required()");
    screen.startBtn = startBtn;
    qt.ui.layout_add(mainlayout, startBtn);
    
    local loadBtn = qt.new_qobject(qt.meta.QPushButton);
    loadBtn.text = "&Load Game";
    loadBtn.enabled = false;
    screen.loadBtn = loadBtn;
    qt.ui.layout_add(mainlayout, loadBtn);
    
    local exitBtn = qt.new_qobject(qt.meta.QPushButton);
    exitBtn.text = "&Exit Game";
    exitBtn.enabled = false;
    screen.exitBtn = exitBtn;
    qt.ui.layout_add(mainlayout, exitBtn);
    
    return screen;

    本次下載包含一個叫qtlua_uic的程式,它可以把Qt Designer設計的.ui轉成.lua檔。 不過因為Qamer::Screen是我寫的,所以它不認識,轉換完後你要手動改一下。 啊,是有些不方便,囧,之後可能要研究一下這部份。

    之前給QtLua加的「QObject自動轉換」會造成程式當掉,好討厭的感覺。 具體來說就是沒註用過的類別都會嘗試自動轉成QObject,結果不是其子類的類別就會出現問題。 我想了很久,發現沒有額外方法判定是否是QObject,所以還是砍掉了。

    致歉:
    README中把Alexandre Becoulet的大名打錯了。 但是我不想再花40分鐘重新上傳一次,所以就沒改。

  • 相关阅读:
    gin路由
    parca 项目protocol buffers 管理学习
    parca 简单试用
    基于wireshark 分析waf 响应处理慢的问题
    victoriametrics 与Grafana Mimir 的一个性能对比
    buf 的bsr
    主机网络限速+测速工具
    parca持续内存&cpu 分析工具
    mongo docker 内存问题
    eventruler 简单试用
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12247655.html
Copyright © 2020-2023  润新知