第一个像样的桌面程序
Posted miaoz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个像样的桌面程序相关的知识,希望对你有一定的参考价值。
qt学了半个月了,终于搞懂了基本的东西。
1 写ui界面,终于不是黑白的命令行了。
2 qt的信号槽机制以及qstring等与char,int,double的转化。
3 qt程序的打包发布。
看一下源码
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include<QString> 4 5 6 char *q; 7 int k=0; 8 9 10 11 double biaodas(); 12 double xiang(); 13 double yinz()//求一个因子的值 14 { 15 double res = 0; 16 char tem = q[k]; 17 if (tem == \'(\')//因子可能是一个括号包起来的表达式,递归到求表达式 18 { 19 k++; 20 res = biaodas(); 21 k++; 22 } 23 else//计算出多个十进制数字符连续组成的数的大小 24 { 25 while (isdigit(tem))//判断tem是不是十进制的字符 26 { 27 res = res * 10 + tem - \'0\'; 28 k++; 29 tem = q[k]; 30 } 31 if (tem == \'.\')//判断有没有小数 32 { 33 double k1 = 10; 34 k++; 35 tem=q[k]; 36 while (isdigit(tem)) 37 { 38 res += (tem-\'0\') / k1; 39 k1 *= 10; 40 k++; 41 tem = q[k]; 42 } 43 } 44 } 45 return res; 46 } 47 double xiang()//求一个多项式的值 48 { 49 double res = yinz(); 50 int flag = 1; 51 while (flag) 52 { 53 char tem = q[k]; 54 if (tem == \'*\' || tem == \'/\')//判断乘除把多项式的求解分解为求多个因子的值 55 { 56 k++; 57 double va = yinz(); 58 if (tem == \'*\') 59 res *= va; 60 else 61 res /= va; 62 } 63 else flag = 0; 64 } 65 return res; 66 } 67 double biaodas()//求表达式的值 68 { 69 double res = xiang(); 70 int flag = 1; 71 while (flag) 72 { 73 char tem = q[k]; 74 if (tem == \'+\' || tem == \'-\')//判断乘除把表达式的求解分解为求多多项式的值 75 { 76 k++; 77 double va = xiang(); 78 if (tem == \'+\') 79 res += va; 80 else 81 res -= va; 82 } 83 else flag = 0; 84 } 85 return res; 86 } 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 MainWindow::MainWindow(QWidget *parent) : 104 QMainWindow(parent), 105 ui(new Ui::MainWindow) 106 { 107 ui->setupUi(this); 108 } 109 QString str; 110 int i=0; 111 112 MainWindow::~MainWindow() 113 { 114 delete ui; 115 } 116 117 void MainWindow::on_pushButton_clicked() 118 { 119 char *p=str.toLatin1().data(); 120 if(i==0) 121 { 122 str+=\'1\'; 123 i++; 124 } 125 else 126 { 127 if(p[i-1]==\')\'); 128 else 129 { 130 str+=\'1\'; 131 i++; 132 } 133 } 134 ui->textBrowser->setText(str); 135 } 136 137 void MainWindow::on_pushButton_2_clicked() 138 { 139 char *p=str.toLatin1().data(); 140 if(i==0) 141 { 142 str+=\'2\'; 143 i++; 144 } 145 else 146 { 147 if(p[i-1]==\')\'); 148 else 149 { 150 str+=\'2\'; 151 i++; 152 } 153 } 154 ui->textBrowser->setText(str); 155 } 156 157 void MainWindow::on_pushButton_3_clicked() 158 { 159 char *p=str.toLatin1().data(); 160 if(i==0) 161 { 162 str+=\'3\'; 163 i++; 164 } 165 else 166 { 167 if(p[i-1]==\')\'); 168 else 169 { 170 str+=\'3\'; 171 i++; 172 } 173 } 174 ui->textBrowser->setText(str); 175 } 176 177 void MainWindow::on_pushButton_4_clicked() 178 { 179 char *p=str.toLatin1().data(); 180 if(i==0) 181 { 182 str+=\'4\'; 183 i++; 184 } 185 else 186 { 187 if(p[i-1]==\')\'); 188 else 189 { 190 str+=\'4\'; 191 i++; 192 } 193 } 194 ui->textBrowser->setText(str); 195 } 196 197 void MainWindow::on_pushButton_5_clicked() 198 { 199 char *p=str.toLatin1().data(); 200 if(i==0) 201 { 202 str+=\'5\'; 203 i++; 204 } 205 else 206 { 207 if(p[i-1]==\')\'); 208 else 209 { 210 str+=\'5\'; 211 i++; 212 } 213 } 214 ui->textBrowser->setText(str); 215 } 216 217 void MainWindow::on_pushButton_6_clicked() 218 { 219 char *p=str.toLatin1().data(); 220 if(i==0) 221 { 222 str+=\'6\'; 223 i++; 224 } 225 else 226 { 227 if(p[i-1]==\')\'); 228 else 229 { 230 str+=\'6\'; 231 i++; 232 } 233 } 234 ui->textBrowser->setText(str); 235 } 236 237 void MainWindow::on_pushButton_7_clicked() 238 { 239 char *p=str.toLatin1().data(); 240 if(i==0) 241 { 242 str+=\'7\'; 243 i++; 244 } 245 else 246 { 247 if(p[i-1]==\')\'); 248 else 249 { 250 str+=\'7\'; 251 i++; 252 } 253 } 254 ui->textBrowser->setText(str); 255 } 256 257 void MainWindow::on_pushButton_8_clicked() 258 { 259 char *p=str.toLatin1().data(); 260 if(i==0) 261 { 262 str+=\'8\'; 263 i++; 264 } 265 else 266 { 267 if(p[i-1]==\')\'); 268 else 269 { 270 str+=\'8\'; 271 i++; 272 } 273 } 274 ui->textBrowser->setText(str); 275 } 276 277 void MainWindow::on_pushButton_9_clicked() 278 { 279 char *p=str.toLatin1().data(); 280 if(i==0) 281 { 282 str+=\'9\'; 283 i++; 284 } 285 else 286 { 287 if(p[i-1]==\')\'); 288 else 289 { 290 str+=\'9\'; 291 i++; 292 } 293 } 294 ui->textBrowser->setText(str); 295 } 296 297 void MainWindow::on_pushButton_10_clicked() 298 { 299 char *p=str.toLatin1().data(); 300 if(i==0) 301 { 302 str+=\'.\'; 303 i++; 304 } 305 else 306 { 307 if(p[i-1]==\'+\'||p[i-1]==\'-\'||p[i-1]==\'*\'||p[i-1]==\'/\'||p[i-1]==\'(\'||p[i]==\')\'); 308 else 309 { 310 str+=\'.\'; 311 i++; 312 } 313 } 314 ui->textBrowser->setText(str); 315 } 316 317 void MainWindow::on_pushButton_11_clicked() 318 { 319 char *p=str.toLatin1().data(); 320 if(i==0) 321 { 322 str+=\'0\'; 323 i++; 324 } 325 else 326 { 327 if(p[i]==\')\'); 328 else 329 { 330 str+=\'0\'; 331 i++; 332 } 333 } 334 ui->textBrowser->setText(str); 335 } 336 337 void MainWindow::on_pushButton_12_clicked() 338 { 339 char *p=str.toLatin1().data(); 340 if(i==0); 341 else 342 { 343 if(p[i-1]==\'+\'||p[i-1]==\'-\'||p[i-1]==\'*\'||p[i-1]==\'/\'||p[i-1]==\'.\'||p[i]==\'(\'); 344 else 345 { 346 str+=\'+\'; 347 i++; 348 } 349 } 350 ui->textBrowser->setText(str); 351 } 352 353 void MainWindow::on_pushButton_13_clicked() 354 { 355 char *p=str.toLatin1().data(); 356 if(i==0); 357 else 358 { 359 if(p[i-1]==\'+\'||p[i-1]==\'-\'||p[i-1]==\'*\'||p[i-1]==\'/\'||p[i-1]==\'.\'||p[i]==\'(\'); 360 else 361 { 362 str+=\'-\'; 363 i++; 364 } 365 } 366 ui->textBrowser->setText(str); 367 } 368 369 void MainWindow::on_pushButton_14_clicked() 370 { 371 char *p=str.toLatin1().data(); 372 if(i==0); 373 else 374 { 375 if(p[i-1]==\'+\'||p[i-1]==\'-\'||p[i-1]==\'*\'||p[i-1]==\'/\'||p[i-1]==\'.\'||p[i]==\'(\'); 376 else 377 { 378 str+=\'*\'; 379 i++; 380 } 381 } 382 ui->textBrowser->setText(str); 383 } 384 385 void MainWindow::on_pushButton_15_clicked() 386 { 387 char *p=str.toLatin1().data(); 388 if(i==0); 389 else 390 { 391 if(p[i-1]==\'+\'||p[i-1]==\'-\'||p[i-1]==\'*\'||p[i-1]==\'/\'||p[i-1]==\'.\'||p[i]==\'(\'); 392 else 393 { 394 str+=\'/\'; 395 i++; 396 } 397 } 398 ui->textBrowser->setText(str); 399 } 400 401 void MainWindow::on_pushButton_16_clicked() 402 { 403 char *p=str.toLatin1().data(); 404 if(i==0) 405 { 406 str+=\'(\'; 407 i++; 408 } 409 else 410 { 411 if(p[i-1]==\'+\'||p[i-1]==\'-\'||p[i-1]==\'*\'||p[i-译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务有没有像样的 .NET MVC 框架来构建丰富的 AJAX 应用程序?
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段