📄 q_radiobutton.cpp
字号:
#include "qcurses/Q_RadioButton.hpp"/*######################################### 函数功能:析构函数 ## 返 回 值:NULL ## 函数参数:NULL #########################################*/Q_RadioButton::~Q_RadioButton(){ delete [] Text;}//------------------------------------------------------------------------------------------/*######################################### 函数功能:构造函数 ## 返 回 值:NULL ## 函数参数:WINDOW *vMainWin 主窗口 ## int vWidth 宽度 ## int vYBegin 起始y ## int vXBegin 起始x ## int vCFront 文字颜色 ## int vCBack 背景色 #########################################*/Q_RadioButton::Q_RadioButton(WINDOW *vMainWin,int vWidth,int vYBegin,int vXBegin,int vCFront,int vCBack):Q_Object(vMainWin, 1, vWidth, vYBegin, vXBegin, false, vCFront, vCBack){ Value = false; strcpy(vValue,"○"); mvwprintw(WorkWin,0,0,"%s 按钮",vValue); wrefresh(WorkWin); Text = new char[90]; memset(Text,'\0',90); strcpy(Text,"按钮");}//------------------------------------------------------------------------------------------/*######################################### 函数功能:设置显示 ## 返 回 值:NULL ## 函数参数:char *format 字符格式 ## ... 具体字符串 #########################################*/void Q_RadioButton::Set(const char *format,...){ //赋值 va_list ap; va_start (ap,format); if(vsprintf(Text,format,ap)<0) strcpy(Text,"TooLong"); va_end(ap); if (Value) strcpy(vValue,"●"); else strcpy(vValue,"○"); mvwprintw(WorkWin,0,0,BlankSpace); mvwprintw(WorkWin,0,0,"%s %s",vValue,Text); wrefresh(WorkWin);}//------------------------------------------------------------------------------------------/*######################################### 函数功能:控件取值 ## 返 回 值:最后键盘输入 ## 函数参数:NULL #########################################*/int Q_RadioButton::Get(){ wattron(WorkWin,A_REVERSE); mvwprintw(WorkWin,0,0,BlankSpace); mvwprintw(WorkWin,0,0,"%s %s",vValue,Text); for (; ; ) { GetKey(); if (NowKey==10 || NowKey==32) //回车或者空格 break; if (NowKey == 9 || NowKey == KEY_UP || NowKey == KEY_DOWN || NowKey==KEY_LEFT || NowKey==KEY_RIGHT) { wattroff(WorkWin,A_REVERSE); if (Value) strcpy(vValue,"●"); else strcpy(vValue,"○"); mvwprintw(WorkWin,0,0,BlankSpace); mvwprintw(WorkWin,0,0,"%s %s",vValue,Text); wrefresh(WorkWin); return(NowKey); } } wattroff(WorkWin,A_REVERSE); if (Value) { Value = false; strcpy(vValue,"○"); } else { Value = true; strcpy(vValue,"●"); } mvwprintw(WorkWin,0,0,BlankSpace); mvwprintw(WorkWin,0,0,"%s %s",vValue,Text); wrefresh(WorkWin); return(NowKey);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -