龙初越 2016-03-11 03:43 采纳率: 66.7%
浏览 2413
已采纳

一个QT中特殊输入控件的实现问题

我需要制作出一个QT输入控件,用户能在其中正常输入
数字字符,但需要实现的效果为:
每输入4个字符后自动空一格,即每自个字符为一组
每输入10组字符后自动换下一行
每输入达到5行后自动空一段,继续输入另起一段,效果见截图:图片说明

打算用QTextEdit来实现,请教比较合适的实现方法,不限制最终用什么输入控件,
谢谢!

  • 写回答

1条回答 默认 最新

  • 小灸舞 2016-03-11 06:55
    关注

    用QTextEdit实现了一下,应该能满足LZ的要求
    main.cpp:

     #include "mainwindow.h"
    #include <QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
    
        return a.exec();
    }
    

    mainwindow.h:

     #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private:
        Ui::MainWindow *ui;
        int count_char;
        int count_row;
        int count_line;
    
    public slots:
        void ProcessText();
    };
    
    #endif // MAINWINDOW_H
    

    mainwindow.cpp:

     #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        count_char = 0;
        count_row = 0;
        count_line = 0;
        connect(ui->textEdit, SIGNAL(textChanged()), this, SLOT(ProcessText()));
    }
    
    void MainWindow::ProcessText()
    {
        if(++count_char == 4)
        {
            if(++count_row == 10)
            {
                if(++count_line == 5)
                {
                    ui->textEdit->insertPlainText("\n");
                    count_line = 0;
                }
                ui->textEdit->insertPlainText("\n");
                count_row = 0;
            }
            else
                ui->textEdit->insertPlainText(" ");
            count_char = 0;
        }
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    

    运行结果:
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向