【eTax】網路報稅


eTax http://tax.nat.gov.tw/irc/irc_download.html

【目的】

  1. 利用網路報稅。

【步驟】
按照報稅義務人的狀況,使用方式可能有所不同。

  1. 如果電腦有連上網路的話,選擇 網路自動安裝版。下載並安裝。image
  2. 安裝時,目的資料夾可以用系統內定的即可。之後安裝步驟省略。
    image
  3. 直接用國稅局今年(2010年)給的資料片(3.5吋磁片,檔名為 某某某.DAT)的話,選第四項。
    image
  4. 因為我沒有自然人憑證,所以直接採用身分證統一編號+戶口名簿上的戶號。
    並按下一步直接帶入 扣免繳、股票憑單所得資料與扣除額資料。
    image
  5. 進入系統之後,按照 基本資料|幅養親屬… 一個一個去檢視和填入資料。
    這邊以簡單的例子,夫妻申報只使用標準扣除額(夫妻合併申報額度為152000)。
    image
  6. 最後就是 計算與上傳,如果要由郵政存簿或銀行扣款的話選擇 繳稅取款委託書。
    並按照填入局號與帳號資料。最後就是 存檔與上傳。
    image
  7. 中間會再驗證一些資料,這邊稍微省略。上傳之後選取 查詢是否完成申報。
    就會連上網頁即可進行查證的動作。
    image

【驗證】

  1. 綜合所得稅電子結算申報繳稅查詢(就是上面驗證的網址,這邊留一下記錄)
    http://tax.nat.gov.tw/irc/IRX_query.htm

【其他】

  1. 保險最高額度為一人最多24000 。
  2. 若有房屋貸款,證件記得及早申請。
  3. 自然人憑證可至戶政事務所辦理,申請速度約十分鐘。

【Qt】CSS樣版


【目的】

  1. 學習在CSS樣版的用法。

【Tips】

  1. 通常都是透過 setStyleSheet 來指定 css 樣板。

【程式】

  1. main.c
    #include <QtGui/QApplication>
    #include <QtGui/QLabel>
    
    int main(int argc, char *argv[])
    {
      QApplication app(argc, argv);
      QLabel label("Hello, world!");
      label.setStyleSheet("background-color: yellow");
      label.show();
      return app.exec();
    }

【結果】

  1. QLabel 的背景變成黃色。
    image

【參考】

【問題】

  • 如何將相關的元件定義一樣的樣版。而不用一個一個指定?

【Qt】RangeControl 元件


【目的】

  1. 練習 Qt Range Control 元件基本用法。

【程式】

  1. rangectldemo.h
    #ifndef RANGECTLDEMO_H
    #define RANGECTLDEMO_H
    #include <QWidget>
    
    class    QSlider;
    class    QDial;
    class    QScrollBar;
    class    QSpinBox;
    class    QProgressBar;
    class    QLCDNumber;
    class    QVBoxLayout;
    
    class  RangeCtlDemo : public QWidget {
      Q_OBJECT
    
    public:
      RangeCtlDemo();
    
    private slots:
      void RangeAdj(const int val);
    
    private:
      QSlider      *mySlider;
      QDial        *myDial;
      QScrollBar   *myScrollbar;
      QSpinBox     *mySpinbox;
      QProgressBar *myProgressbar;
      QLCDNumber   *myLcd;
    };
    #endif
  2. rangectldemo.cpp
    #include <QtGui>
    #include <QtDebug>
    #include "rangectldemo.h"
    
    RangeCtlDemo::RangeCtlDemo()
    {
      mySlider = new QSlider(Qt::Horizontal);
      mySlider->setRange(0, 99);
      mySlider->setValue(0);
    
      myDial = new QDial;
      myDial->setRange(0, 99);
      myDial->setValue(0);
    
      myScrollbar = new QScrollBar(Qt::Horizontal);
      myScrollbar->setRange(0, 99);
      myScrollbar->setValue(0);
    
      mySpinbox   = new QSpinBox;
      mySpinbox->setRange(0, 99);
      mySpinbox->setValue(0);
    
      myProgressbar = new QProgressBar;
      myProgressbar->setRange(0, 99);
      myProgressbar->setValue(0);
    
      myLcd  = new QLCDNumber;
      myLcd->display(0);
    
      connect(mySlider, SIGNAL(valueChanged(int)), this, SLOT(RangeAdj(int)));
      connect(myDial, SIGNAL(valueChanged(int)), this, SLOT(RangeAdj(int)));
      connect(myScrollbar, SIGNAL(valueChanged(int)), this, SLOT(RangeAdj(int)));
      connect(mySpinbox, SIGNAL(valueChanged(int)), this, SLOT(RangeAdj(int)));
      connect(mySpinbox, SIGNAL(valueChanged(int)), myProgressbar, SLOT(setValue(int)));
      connect(mySpinbox, SIGNAL(valueChanged(int)), myLcd, SLOT(display(int)));
    
      QVBoxLayout *layout = new QVBoxLayout;
      layout->addWidget(mySlider,0, 0);
      layout->addWidget(myDial,1, 0);
      layout->addWidget(myScrollbar,2,0);
      layout->addWidget(mySpinbox,3,0);
      layout->addWidget(myProgressbar,4,0);
      layout->addWidget(myLcd,5,0);
    
      layout->addStretch(1);
      setLayout(layout);
    }
    void RangeCtlDemo::RangeAdj(const int val)
    {    
      mySlider->setValue(val);
      myDial->setValue(val);
      myScrollbar->setValue(val);
      mySpinbox->setValue(val);
      //myProgressbar->setValue(5);
      //myLcd->display(val);
      //qDebug() << val;
    }
  3. main.cpp
    #include <QApplication>
    #include "rangectldemo.h"
    
    int main(int argc, char *argv[]) {
      QApplication app(argc, argv);
    
      RangeCtlDemo rangeCtlDemo;
      rangeCtlDemo.resize(300, 50);
      rangeCtlDemo.setWindowTitle(QObject::tr("Range Control Demo"));
      rangeCtlDemo.show();
      return app.exec();
    }

【結果】

  1. 調整 Slider/Dial/ScrollBar/SpinBox,就會造成畫面元件的連鎖反應。
    image

【問題】

  1. 將rangectldemo.cpp註解的地方打開會產生Segment fault,這問題目前還無解。
      //myProgressbar->setValue(5);
      //myLcd->display(val);
    

【備註】

  1. QProgressBar 與 QProgress 是不同的東西。

【QT】ComboBox


【目的】

  1. 主要是了解 combox 的用法。

【程式】

  • 建立一個物件繼承QWidget(order.h)
    #ifndef ORDER_H
    #define ORDER_H
    #include <QWidget>
    class  OrderMenu: public QWidget {
            Q_OBJECT
    
    private slots:
            void PrintOrder(const QString &str);
    };
    #endif
  • 示範如何知道從combobox傳過來的字串(main.cpp)
    #include <QApplication>
    #include <QWidget>
    #include <QLabel>
    #include <QComboBox>
    #include <QVBoxLayout>
    #include <QtDebug>
    #include <QObject>
    #include "order.h"
    
    void OrderMenu::PrintOrder(const QString &str)
    {
      QString prefix = tr("Your favorite food is");
    
      if (str == QObject::tr("Donut"))
        qDebug() << prefix << str;
      else if (str == QObject::tr("Pizza"))
        qDebug() << prefix << str;
      else
        qDebug() << prefix << str;
    }
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        QWidget *order = new OrderMenu;
        order->setWindowTitle("Favorite food");
        order->resize(250, 100);
    
        QLabel *label = new QLabel(QObject::tr("Choose your favorite food"));
        QComboBox *combo = new QComboBox;
        combo->insertItem(0, "Donut");
        combo->insertItem(1, "Pizza");
    
        QVBoxLayout *layout = new QVBoxLayout;
        layout->addWidget(label);
        layout->addWidget(combo);    
        QObject::connect(combo, SIGNAL(activated(const QString &)),
         order, SLOT(PrintOrder(const QString &)));    
        order->setLayout(layout);
        order->show();
        return app.exec();
    }

【結果】

  1. 顯示視窗
    image
  2. 結果是用 qDebug 列印,這邊不特別抓圖了。
 

Ed32. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com