QT代碼框架小案例:一個簡單的時間類(Time)及其實例化程序,模擬了時間的設置、顯示和自動流逝功能,類似一個簡易電子時鐘。

一、代碼框架

二、運行終端顯示

三、代碼詳細注釋

test.pro

# 指定項目類型為應用程序(而非庫或其他類型)
TEMPLATE = app# 配置項目:啟用控制臺輸出,使用C++11標準
CONFIG += console c++11# 移除配置:不生成應用程序捆綁包(主要用于macOS等平臺)
CONFIG -= app_bundle# 移除配置:不使用Qt框架
CONFIG -= qt# 源文件列表:列出項目中所有的.cpp源文件
SOURCES += \main.cpp \mytime.cpp# 頭文件列表:列出項目中所有的.h頭文件
HEADERS += \mytime.h

mytime.h

#ifndef MY_TIME_H
#define MY_TIME_H
// 時間類
class Time {
public:
// 構造函數
Time (int h=23,int m=59,int s=55);
// 接口 --- 成員函數
// 設置和獲取小時的接口
void set_hour (int h);
int get_hour ();
// 設置時間
void set_time (int h=23,int m=59,int s=55);
// 打印時間
void print_time ();
// 時間運行(流逝)
void run ();
private:// 私有成員
// 數據 --- 成員變量
int hour;// 時
int min;// 分
int sec;// 秒
};
#endif // MY_TIME_H

main.cpp

//#include <iostream>
//#include "mytime.h"//using namespace std;//int main()
//{
//    Time t;//    return 0;
//}#include <iostream>
#include "mytime.h"
#include <unistd.h> // Linux/Unix系統休眠函數頭文件
// #include <windows.h> // Windows系統需替換為該頭文件using namespace std;int main()
{Time t;  // 創建Time對象,默認初始時間23:59:55// 無限循環,持續更新并顯示時間while (true) {t.print_time();  // 顯示當前時間(格式HH:MM:SS)t.run();         // 時間遞增1秒sleep(1);        // 休眠1秒(Linux/Unix)// Sleep(1000);   // Windows系統使用該語句,單位為毫秒cout.flush();    // 強制刷新輸出,確保時間實時顯示}return 0;
}

mytime.cpp

#include "mytime.h"
#include <iostream>
#include <unistd.h>
#include <iomanip>using namespace std;// 構造函數實現,初始化時、分、秒
Time::Time(int h, int m, int s) : hour(h), min(m), sec(s)
{
}// 設置小時
void Time::set_hour(int h)
{hour = h;
}// 獲取小時
int Time::get_hour()
{return hour;
}// 設置時間(時、分、秒)
void Time::set_time(int h, int m, int s)
{hour = h;min = m;sec = s;
}// 打印時間,格式為 HH:MM:SS,不足兩位的數字前補0
void Time::print_time()
{std::cout << setw(2) << setfill('0') << hour << ":"<< setw(2) << setfill('0') << min << ":"<< setw(2) << setfill('0') << sec << "\r";
}// 時間運行(每秒遞增1秒,并處理進位邏輯)
void Time::run()
{sec++;if (sec == 60) {       // 秒滿60進1分鐘sec = 0;min++;if (min == 60) {   // 分鐘滿60進1小時min = 0;hour++;if (hour == 24) {  // 小時滿24重置為0hour = 0;}}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96598.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96598.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96598.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nacos-11--Nacos熱更新的原理

在Nacos中&#xff0c;當監聽到配置變化后&#xff0c;Nacos提供了相關機制&#xff08;長輪詢或gRPC&#xff09;讓客戶端能夠監聽到配置的變化&#xff0c;并觸發相應的監聽器&#xff08;Listener&#xff09;&#xff0c;但具體的處理邏輯需要根據實際需求來實現。 1、熱更…

fastapi 的BackgroundTasks

什么是 BackgroundTasks&#xff1f;BackgroundTasks 是 FastAPI 提供的一個強大工具&#xff0c;它允許你將一些非緊急的、耗時的操作&#xff08;例如發送郵件、處理數據、調用第三方 API 等&#xff09;放到“后臺”去執行&#xff0c;而不是讓用戶一直等待這些操作完成。它…

Python 十進制轉二進制

在 Python 中&#xff0c;將十進制整數轉換為二進制有多種方法。以下是幾種常見的方式&#xff1a;1. 使用 bin() 函數bin() 是 Python 內置函數&#xff0c;可以將十進制整數轉換為二進制字符串。語法bin(n)示例n 13 binary_str bin(n) print(binary_str) # 輸出: 0b1101說…

合并工作表,忽略手動隱藏行超簡單-Excel易用寶

同事小麗有一個工作簿&#xff0c;文件中有多個工作表&#xff0c;每個工作表中有多行數據&#xff0c;這些表格中數據是有手動隱藏行的&#xff0c;她想把這些表格的數據忽略隱藏行合并到一個工作表中&#xff0c;但是使勁渾身解數&#xff0c;各種折騰&#xff0c;都會把隱藏…

我從零開始學習C語言(14)- 基本類型 PART1

今天學習第7章-基本類型&#xff0c;主要內容如下&#xff1a;7.1 整數類型這里的整數的整數值就是數學意義上的整數。C語言支持兩種本質上&#xff08;存儲形式&#xff09;不同的數值類型&#xff1a;整數類型&#xff08;簡稱整型&#xff09;和浮點類型&#xff08;簡稱浮點…

Flutter - UI布局

一、容器Widget1. ScaffoldScaffold 作為頁面的腳手架&#xff0c;基礎區域包含頂部導航欄 appBar、主體內容區 body、側邊抽屜 drawer、懸浮按鈕 floatingActionButton、底部導航欄 bottomNavigationBar。Scaffold(appBar: AppBar( // 頂部導航欄title: Text(首頁),),body: Ce…

UNIKGQA論文筆記

UNIKGQA: UNIFIED RETRIEVAL AND REASONING FOR SOLVING MULTI-HOP QUESTION ANSWERING OVER KNOWLEDGE GRAPH(ICLR 2023)Introduction知識圖上的多跳問題回答&#xff08;KGQA&#xff09;的目的是在大規模知識圖譜&#xff08;KG&#xff09;上找到自然語言問題中提到的主題實…

MySQL 8.0.17 “Too Many Connections” 排查指南

MySQL 8.0.17 “Too Many Connections” 排查與優化指南 在 MySQL 8.0.17 中&#xff0c;當出現“Too many connections”錯誤時&#xff0c;通常意味著數據庫連接數已達上限。這不僅會影響應用性能&#xff0c;還可能導致連接池&#xff08;如 Druid&#xff09;無法獲取新連接…

GEO優化服務:智能時代營銷新賽道的中國引領者——全球行業格局與發展趨勢觀察

隨著全球人工智能技術的迅猛發展&#xff0c;以GPT-5、Claude Opus以及我國的DeepSeek Divine、豆包等為代表的新一代生成式AI搜索引擎&#xff0c;正深刻改變著信息獲取與商業決策模式。用戶通過直接向AI提問獲取整合答案的行為日益普遍&#xff0c;傳統搜索引擎的流量入口地位…

全面解析主流AI模型:功能對比與應用推薦

全面解析主流AI模型&#xff1a;功能對比與應用推薦 在當前人工智能技術飛速發展的背景下&#xff0c;市面上涌現了多種具備不同能力的AI模型。本文將系統梳理主流模型的特性、對比其核心能力&#xff0c;并結合實際場景推薦高效、穩定的API服務&#xff08;如https://api.aaa…

【Nacos知識】Nacos 作為注冊中心的客戶端配置詳解

Nacos 作為注冊中心的客戶端配置詳解Nacos 作為注冊中心的客戶端配置詳解一、核心配置項全景圖二、基礎連接配置1. 服務端地址配置2. 命名空間配置3. 服務分組配置三、服務注冊配置1. 服務元數據配置2. 網絡位置配置3. 集群與權重配置四、健康檢查配置1. 心跳參數配置2. 健康檢…

TypeReference 泛型的使用場景及具體使用流程

簡介 在 Java 中&#xff0c;泛型類型在運行時會被擦除。這意味著當我們使用泛型時&#xff0c;運行時無法直接獲取到泛型的具體類型信息。例如&#xff0c;我們無法直接通過 Class 對象來獲取一個泛型類型的類型參數。這在某些情況下可能會導致問題&#xff0c;特別是在我們需…

商超場景徘徊識別誤報率↓79%!陌訊多模態時序融合算法落地優化

原創聲明本文為原創技術解析文章&#xff0c;核心技術參數與架構設計引用自 “陌訊技術白皮書&#xff08;2024 版&#xff09;”&#xff0c;所有技術描述均經過重寫轉換&#xff0c;無復制官網文案行為&#xff0c;嚴禁未經授權轉載。一、行業痛點&#xff1a;徘徊識別的場景…

KubeBlocks AI:AI時代的云原生數據庫運維探索

KubeBlocks AI&#xff1a;AI時代的云原生數據庫運維探索 REF Auto-detect-failure 架構Auto-bug-detect測試 引言 傳統的自動化運維診斷主要依賴基于規則的方法——無論是Ansible Playbooks的預定義腳本&#xff0c;還是Kubernetes Operator的固化邏輯&#xff0c;這些方法…

如何編譯botan加密庫?

Botan加密庫支持2.x版本和3.x版本&#xff0c;其中3.x版本需要支持C20。0、下載源碼git clone https://github.com/randombit/botan.gitcd botan切換分支到2.19.5版本git checkout 2.19.51、Windows編譯Botan加密庫1.1 配置生成MakefileRelease模式python configure.py --ccmsv…

Linux問答題:分析和存儲日志

目錄 1. RHEL 日志文件保存在哪個目錄中&#xff1f; 2.什么是 syslog 消息和非 syslog 消息&#xff1f; 3.哪兩個服務處理 RHEL 中的 syslog 消息&#xff1f; 4. 列舉常用的系統日志文件并說明其存儲的消息類型。 5. 簡單說下日志文件輪轉的作用 6.systemd-journald 服…

chapter05_從spring.xml讀取Bean

一、簡化Bean的注冊 如果每次注冊一個Bean&#xff0c;都要像上節一樣&#xff0c;手動寫PropertyValues相關的代碼&#xff0c;那太復雜了&#xff0c;我們希望讀取XML文件&#xff0c;自動注冊Bean&#xff0c;這樣對于使用者&#xff0c;甚至不知道有BeanDefinition的存在 二…

【數位DP】D. From 1 to Infinity

Problem - D - Codeforces 題目&#xff1a; 思路&#xff1a; 數位DP 數論 題目讓我們求這個無限序列 123456789101112.... 的前 k 個數的數位和 題目看起來很不好求&#xff0c;事實上確實是這樣的 我們可以先從簡單問題開始 問題①. 求 k 位置對應著第幾個數 那么顯然…

gitlab、jenkins等應用集成ldap

gitlab、jenkins等應用集成ldap 文檔 openldap安裝 -添加條目gitlab、jenkins等應用集成ldap gitlab集成ldap gitlab版本&#xff1a;gitlab-jh-17.7.0 ldap版本&#xff1a;openldap-2.6.10 修改/etc/gitlab/gitlab.rb文件&#xff0c;編輯相關信息 gitlab_rails[ldap_en…

Unity中國小游戲行業沙龍:抖音小游戲平臺分析與規劃

目錄 一、抖音小游戲市場全景分析 行業現狀與發展趨勢 行業發展關鍵議題 內容運營生態觀察 二、平臺技術架構與運營體系 用戶復訪與留存體系 技術支撐體系 三、平臺激勵與商業化政策 收益分成機制 資金服務升級 技術基礎建設 四、生態合作與發展規劃 開發者支持體系…