原创 【Qt6】工具提示以及調色板設置

工具提示即 Tool Tip,當用戶把鼠標移動到某個UI對象上並懸停片刻,就會出現一個“短小精悍”的窗口,顯示一些說明性文本。一般就是功能描述,讓用戶知道這個XX是幹啥用的。 在 Qt 中使用工具提示最方便的做法是直接用 QWidget 類

原创 【Qt6】QWidgetAction 的使用

在開始主題前,先看一個 C++ 例子: #include <iostream> struct Data { int a; int b; }; // 注意這裏 struct Data *s; void doSome()

原创 【VS Code 與 Qt6】QAction 類的一些事

QAction 類表示用戶命令的一種抽象,包括命令文本、圖標、命令觸發後要執行的代碼。菜單、工具欄按鈕往往存在相同的功能,將這些命令獨立抽出來,放到 QAction 以象上,可避免編寫重複的代碼。比如“文件”菜單下有“保存”命令,工具欄上也

原创 【EF Core】主從實體關係與常見實體關係的區別

上次老周扯了有關主、從實體的話題,本篇咱們再挖一下,主、從實體之間建立的關係,跟咱們常用的一對一、一對多這些關係之間有什麼不同。 先看看咱們從學習數據庫開始就特熟悉的常用關係——多對多、一對一、一對多說起。數據實體之間會建立什麼樣的關係,並

原创 【EF Core】實體的主、從關係

假設有以下兩個實體: public class Student { public int StuID { get; set; } public string? Name { get; set; } public I

原创 【.NET深呼吸】用代碼寫WPF控件模板

這一次咱們來探究一下怎麼用純代碼寫 WPF 模板。模板有個共同基類 FrameworkTemplate,數據模板、控件模板等是從此類派生的,因此,該類已定義了一些通用成員。 用代碼構建模板,重要的成員是 VisualTree 屬性,它的類型

原创 【.NET深呼吸】將XAML放到WPF程序之外

上一篇水文中,老周說了一下純代碼編寫 WPF 的大概過程。不過,還是不夠的,本篇水文中咱們還要更進一步。 XAML 文件默認是作爲資源打包進程序中的,而純代碼編寫又導致一些常改動的東西變成硬編碼了。爲了取得二者平衡,咱們還要把一些經常修改的

原创 【.NET 深呼吸】全代碼編寫WPF程序

學習 Code 總有這樣一個過程:入門時候比較依賴設計器、標記語言等輔助工具;等到玩熟練了就會發現純代碼寫 UI 其實更高效。而且,純代碼編寫也是最靈活的。Windows Forms 項目是肯定可以全代碼編寫的,哪怕你使用了設計器,它最後也

原创 【VS Code 與 Qt6】運用事件過濾器批量操作子級組件

如果某個派生自 QObject 的類重寫 eventFilter 方法,那它就成了事件過濾器(Event Filter)。該方法的聲明如下: virtual bool eventFilter(QObject *watched, QEven

原创 【VS Code 與 Qt6】QCheckBox的圖標爲什麼不會切換?

本篇專門扯一下有關 QCheckBox 組件的一個問題。老周不水字數,直接上程序,你看了就明白。 #include <QApplication> #include <QWidget> #include <QPushButton> #inc

原创 【VS Code+Qt6】拖放操作

由於老周的示例代碼都是用 VS Code + CMake + Qt 寫的,爲了不誤導人,在標題中還是加上“VS Code”好一些。 上次咱們研究了剪貼板的基本用法,也瞭解了叫 QMimeData 的重要類。爲啥要強調這個類?因爲接下來扯到的

原创 【Qt 6】讀寫剪貼板

剪貼板是個啥就不用多介紹了,最直觀的功能是實現應用程序之間數據共享。就是咱們常說的“複製”、“粘貼”功能。 在 Qt 中,QClipboard 類提供了相關 API 讓應用程序具備讀/寫剪貼板的能力。數據通過 QMimeData 類包裝。該

原创 【Qt6】嵌套 QWindow

在上個世紀的文章中,老周簡單介紹了 QWindow 類的基本使用——包括從 QWindow 類派生和從 QRasterWindow 類派生。 其實,QWindow 類並不是只能充當主窗口用,它也可以嵌套到父級窗口中,變成子級對象。咱們一般稱

原创 【Qt6】QWindow類可以做什麼

原來的水文標題是“用 VS Code 搞 Qt6”,想想還是直接改爲“Qt6”,反正這個用不用 VS Code 也能搞。雖然我知道大夥伴們都很討厭 CMake,但畢竟這廝幾乎成了 C++ 的玩家規範了。Qt 也算識大體,支持用 CMake

原创 【ASP.NET Core】在node.js上託管Blazor WebAssembly應用

由於 Blazor-WebAssembly 是在瀏覽器中運行的,通常不需要執行服務器代碼,只要有個“窩”能託管並提供相關文件的下載即可。所以,當你有一個現成的 Blazor wasm 項目,沒必要用其他語言重寫,或者你不想用 ASP.NET