mirror of
https://github.com/fralx/LimeReport.git
synced 2025-10-03 12:04:05 +03:00
Define code style and format all source file using clang-format-14
except those placed in 3rdparty directories.
This commit is contained in:
@@ -1,22 +1,25 @@
|
||||
#include "MainWindow.h"
|
||||
#include "ui_MainWindow.h"
|
||||
|
||||
#include <private/qzipreader_p.h>
|
||||
|
||||
#include <QDebug>
|
||||
#include <QFileDialog>
|
||||
#include <QPrintDialog>
|
||||
#include <private/qzipreader_p.h>
|
||||
#include <QDebug>
|
||||
#include <QtCore/qabstractanimation.h>
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 1))
|
||||
#include <QDesktopWidget>
|
||||
#endif
|
||||
#include "XmlModel.h"
|
||||
#include "SettingDialog.h"
|
||||
#include "XmlModel.h"
|
||||
#include "lrreportengine.h"
|
||||
|
||||
//#ifndef QT_DEBUG
|
||||
//Q_IMPORT_PLUGIN(adateeditorplugin)
|
||||
// Q_IMPORT_PLUGIN(adateeditorplugin)
|
||||
//#endif
|
||||
|
||||
void centerWindow(QWidget* widget, double widthFactor, double heightFactor) {
|
||||
void centerWindow(QWidget* widget, double widthFactor, double heightFactor)
|
||||
{
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 1))
|
||||
QDesktopWidget desk;
|
||||
int ww = desk.width() * widthFactor;
|
||||
@@ -31,54 +34,59 @@ void centerWindow(QWidget* widget, double widthFactor, double heightFactor) {
|
||||
widget->resize(ww, wh);
|
||||
widget->move((desk->geometry().width() - ww) / 2, (desk->geometry().height() - wh) / 2);
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
MainWindow::MainWindow(QWidget* parent):
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindow),
|
||||
m_previewScene(0), m_isCert(false), m_deleteLastFile(false)
|
||||
m_previewScene(0),
|
||||
m_isCert(false),
|
||||
m_deleteLastFile(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_report.dataManager()->addModel("reportData",&m_model,false);
|
||||
ui->graphicsView->scale(0.5,0.5);
|
||||
m_report.dataManager()->addModel("reportData", &m_model, false);
|
||||
ui->graphicsView->scale(0.5, 0.5);
|
||||
centerWindow(this, 0.8, 0.8);
|
||||
m_settings = new QSettings("OCKK Ltd","LRDView");
|
||||
m_settings = new QSettings("OCKK Ltd", "LRDView");
|
||||
m_report.setSettings(m_settings);
|
||||
readSetting();
|
||||
setWindowTitle("LRDView ver 1.30");
|
||||
if (QCoreApplication::arguments().count()>1){
|
||||
if (QCoreApplication::arguments().count() > 1) {
|
||||
loadReport(QCoreApplication::arguments().at(1));
|
||||
}
|
||||
//ui->statusBar->addWidget(new QLabel(" Designed by Arin Alexander (arin_a@bk.ru) ",this));
|
||||
// ui->statusBar->addWidget(new QLabel(" Designed by Arin Alexander (arin_a@bk.ru) ",this));
|
||||
}
|
||||
|
||||
bool isFileExists(QZipReader& reader, QString fileName){
|
||||
foreach( QZipReader::FileInfo fi, reader.fileInfoList()){
|
||||
if (fi.filePath.compare(fileName)==0) return true;
|
||||
bool isFileExists(QZipReader& reader, QString fileName)
|
||||
{
|
||||
foreach (QZipReader::FileInfo fi, reader.fileInfoList()) {
|
||||
if (fi.filePath.compare(fileName) == 0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
void MainWindow::loadReport(QString fileName){
|
||||
if (!fileName.isEmpty()){
|
||||
void MainWindow::loadReport(QString fileName)
|
||||
{
|
||||
if (!fileName.isEmpty()) {
|
||||
QZipReader reader(fileName);
|
||||
QByteArray fileData = reader.fileData("report.xml");
|
||||
m_report.loadFromByteArray(&fileData);
|
||||
m_reportData = reader.fileData("data.xml");
|
||||
m_model.setXMLData(&m_reportData);
|
||||
if (m_previewScene) delete m_previewScene;
|
||||
m_previewScene = dynamic_cast<LimeReport::PageDesignIntf*>(m_report.createPreviewScene(ui->graphicsView));
|
||||
if (m_previewScene)
|
||||
delete m_previewScene;
|
||||
m_previewScene = dynamic_cast<LimeReport::PageDesignIntf*>(
|
||||
m_report.createPreviewScene(ui->graphicsView));
|
||||
m_previewScene->setItemMode(LimeReport::PreviewMode);
|
||||
ui->graphicsView->setScene(m_previewScene);
|
||||
ui->graphicsView->centerOn(0, 0);
|
||||
ui->actionEdit->setChecked(false);
|
||||
m_isCert = isFileExists(reader,"CertFlag.sgn");
|
||||
//m_lastReport = fileName;
|
||||
m_isCert = isFileExists(reader, "CertFlag.sgn");
|
||||
// m_lastReport = fileName;
|
||||
ui->action_PDF->setEnabled(true);
|
||||
ui->actionPrint->setEnabled(true);
|
||||
reader.close();
|
||||
if (m_deleteLastFile){
|
||||
if (m_deleteLastFile) {
|
||||
QFile::remove(fileName);
|
||||
}
|
||||
}
|
||||
@@ -92,65 +100,53 @@ MainWindow::~MainWindow()
|
||||
|
||||
void MainWindow::on_actionEdit_triggered()
|
||||
{
|
||||
if (m_previewScene){
|
||||
if (m_previewScene->itemMode()==LimeReport::PreviewMode){
|
||||
if (m_previewScene) {
|
||||
if (m_previewScene->itemMode() == LimeReport::PreviewMode) {
|
||||
m_previewScene->setItemMode(LimeReport::DesignMode);
|
||||
} else m_previewScene->setItemMode(LimeReport::PreviewMode);
|
||||
} else
|
||||
m_previewScene->setItemMode(LimeReport::PreviewMode);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionOpen_triggered()
|
||||
{
|
||||
QString fileName = QFileDialog::getOpenFileName(0,tr("Открыть файл отчета"),QString(),"*.lrd");
|
||||
if (!fileName.isEmpty()){
|
||||
QString fileName
|
||||
= QFileDialog::getOpenFileName(0, tr("Открыть файл отчета"), QString(), "*.lrd");
|
||||
if (!fileName.isEmpty()) {
|
||||
loadReport(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionDesign_triggered()
|
||||
{
|
||||
m_report.designReport();
|
||||
}
|
||||
void MainWindow::on_actionDesign_triggered() { m_report.designReport(); }
|
||||
|
||||
void MainWindow::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
writeSetting();
|
||||
}
|
||||
void MainWindow::closeEvent(QCloseEvent* event) { writeSetting(); }
|
||||
|
||||
void MainWindow::writeSetting(){
|
||||
m_settings->setValue("geometry",saveGeometry());
|
||||
}
|
||||
void MainWindow::writeSetting() { m_settings->setValue("geometry", saveGeometry()); }
|
||||
|
||||
void MainWindow::readSetting()
|
||||
{
|
||||
QVariant v = m_settings->value("geometry");
|
||||
if (v.isValid()){
|
||||
if (v.isValid()) {
|
||||
restoreGeometry(v.toByteArray());
|
||||
}
|
||||
m_certPrinterName = m_settings->value("certPrinterName","").value<QString>();
|
||||
m_otherPrinterName = m_settings->value("otherPrinterName","").value<QString>();
|
||||
m_deleteLastFile = m_settings->value("deleteLastFile",false).value<bool>();
|
||||
m_certPrinterName = m_settings->value("certPrinterName", "").value<QString>();
|
||||
m_otherPrinterName = m_settings->value("otherPrinterName", "").value<QString>();
|
||||
m_deleteLastFile = m_settings->value("deleteLastFile", false).value<bool>();
|
||||
}
|
||||
|
||||
void MainWindow::settingAccepted()
|
||||
{
|
||||
m_certPrinterName=((SettingDialog*)sender())->certPrinterName();
|
||||
m_otherPrinterName=((SettingDialog*)sender())->othenPrinterName();
|
||||
m_certPrinterName = ((SettingDialog*)sender())->certPrinterName();
|
||||
m_otherPrinterName = ((SettingDialog*)sender())->othenPrinterName();
|
||||
m_deleteLastFile = ((SettingDialog*)sender())->deleteLastFile();
|
||||
m_settings->setValue("certPrinterName",m_certPrinterName);
|
||||
m_settings->setValue("otherPrinterName",m_otherPrinterName);
|
||||
m_settings->setValue("deleteLastFile",m_deleteLastFile);
|
||||
m_settings->setValue("certPrinterName", m_certPrinterName);
|
||||
m_settings->setValue("otherPrinterName", m_otherPrinterName);
|
||||
m_settings->setValue("deleteLastFile", m_deleteLastFile);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionZoomIn_triggered()
|
||||
{
|
||||
ui->graphicsView->scale(1.2,1.2);
|
||||
}
|
||||
void MainWindow::on_actionZoomIn_triggered() { ui->graphicsView->scale(1.2, 1.2); }
|
||||
|
||||
void MainWindow::on_actionZoomOut_triggered()
|
||||
{
|
||||
ui->graphicsView->scale(1/1.2,1/1.2);
|
||||
}
|
||||
void MainWindow::on_actionZoomOut_triggered() { ui->graphicsView->scale(1 / 1.2, 1 / 1.2); }
|
||||
|
||||
void MainWindow::on_actionPrint_triggered()
|
||||
{
|
||||
@@ -161,29 +157,26 @@ void MainWindow::on_actionPrint_triggered()
|
||||
pi = getPrinterInfo(m_otherPrinterName);
|
||||
}
|
||||
QPrinter printer(pi);
|
||||
QPrintDialog dialog(&printer,QApplication::activeWindow());
|
||||
QPrintDialog dialog(&printer, QApplication::activeWindow());
|
||||
|
||||
|
||||
if (dialog.exec()){
|
||||
if (dialog.exec()) {
|
||||
if (m_previewScene->pageItems().isEmpty())
|
||||
m_report.printReport(&printer);
|
||||
else{
|
||||
else {
|
||||
printer.setPrintRange(QPrinter::PrintRange(dialog.printRange()));
|
||||
printer.setFromTo(dialog.fromPage(), dialog.toPage());
|
||||
m_report.printPages(
|
||||
m_previewScene->pageItems(), &printer
|
||||
);
|
||||
foreach(LimeReport::PageItemDesignIntf::Ptr pageItem, m_previewScene->pageItems()){
|
||||
m_report.printPages(m_previewScene->pageItems(), &printer);
|
||||
foreach (LimeReport::PageItemDesignIntf::Ptr pageItem, m_previewScene->pageItems()) {
|
||||
m_previewScene->reactivatePageItem(pageItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
QPrinterInfo MainWindow::getPrinterInfo(QString printerName){
|
||||
QPrinterInfo MainWindow::getPrinterInfo(QString printerName)
|
||||
{
|
||||
foreach (QPrinterInfo pi, QPrinterInfo::availablePrinters()) {
|
||||
if (pi.printerName().compare(printerName)==0)
|
||||
if (pi.printerName().compare(printerName) == 0)
|
||||
return pi;
|
||||
}
|
||||
return QPrinterInfo::defaultPrinter();
|
||||
@@ -199,30 +192,27 @@ void MainWindow::on_actionSetting_triggered()
|
||||
w.exec();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_actionDelete_triggered()
|
||||
{
|
||||
if (m_previewScene){
|
||||
if (m_previewScene) {
|
||||
m_previewScene->deleteSelected();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_action_PDF_triggered()
|
||||
{
|
||||
QString fileName = QFileDialog::getSaveFileName(this,tr("Имя файла для экспорта"),"","*.pdf" );
|
||||
if (!fileName.isEmpty()){
|
||||
QString fileName
|
||||
= QFileDialog::getSaveFileName(this, tr("Имя файла для экспорта"), "", "*.pdf");
|
||||
if (!fileName.isEmpty()) {
|
||||
QPrinter printer;
|
||||
printer.setOutputFileName(fileName);
|
||||
printer.setOutputFormat(QPrinter::PdfFormat);
|
||||
//m_report.printReport(&printer);
|
||||
// m_report.printReport(&printer);
|
||||
if (m_previewScene->pageItems().isEmpty())
|
||||
m_report.printReport(&printer);
|
||||
else{
|
||||
m_report.printPages(
|
||||
m_previewScene->pageItems(),
|
||||
&printer
|
||||
);
|
||||
foreach(LimeReport::PageItemDesignIntf::Ptr pageItem, m_previewScene->pageItems()){
|
||||
else {
|
||||
m_report.printPages(m_previewScene->pageItems(), &printer);
|
||||
foreach (LimeReport::PageItemDesignIntf::Ptr pageItem, m_previewScene->pageItems()) {
|
||||
m_previewScene->reactivatePageItem(pageItem);
|
||||
}
|
||||
}
|
||||
|
@@ -1,22 +1,22 @@
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include "XmlModel.h"
|
||||
#include "lrpagedesignintf.h"
|
||||
#include "lrreportengine.h"
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QPrinterInfo>
|
||||
#include "lrreportengine.h"
|
||||
#include "lrpagedesignintf.h"
|
||||
#include "XmlModel.h"
|
||||
|
||||
namespace Ui {
|
||||
class MainWindow;
|
||||
}
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
class MainWindow: public QMainWindow {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = 0);
|
||||
explicit MainWindow(QWidget* parent = 0);
|
||||
~MainWindow();
|
||||
|
||||
private slots:
|
||||
@@ -29,7 +29,8 @@ private slots:
|
||||
void on_actionSetting_triggered();
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
void closeEvent(QCloseEvent* event);
|
||||
|
||||
private:
|
||||
void loadReport(QString fileName);
|
||||
void writeSetting();
|
||||
@@ -42,8 +43,8 @@ private slots:
|
||||
void on_action_PDF_triggered();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
LimeReport::PageDesignIntf* m_previewScene;
|
||||
Ui::MainWindow* ui;
|
||||
LimeReport::PageDesignIntf* m_previewScene;
|
||||
LimeReport::ReportEngine m_report;
|
||||
XmlModel m_model;
|
||||
QByteArray m_reportData;
|
||||
|
@@ -1,19 +1,15 @@
|
||||
#include "SettingDialog.h"
|
||||
#include "ui_SettingDialog.h"
|
||||
|
||||
#include <QPrinterInfo>
|
||||
|
||||
SettingDialog::SettingDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::SettingDialog)
|
||||
SettingDialog::SettingDialog(QWidget* parent): QDialog(parent), ui(new Ui::SettingDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
initPrinters();
|
||||
}
|
||||
|
||||
SettingDialog::~SettingDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
SettingDialog::~SettingDialog() { delete ui; }
|
||||
|
||||
void SettingDialog::initPrinters()
|
||||
{
|
||||
@@ -23,7 +19,8 @@ void SettingDialog::initPrinters()
|
||||
}
|
||||
}
|
||||
|
||||
void SettingDialog::setCertPrinterName(QString printerName){
|
||||
void SettingDialog::setCertPrinterName(QString printerName)
|
||||
{
|
||||
|
||||
ui->certPrinter->setCurrentIndex(ui->certPrinter->findText(printerName));
|
||||
}
|
||||
@@ -33,21 +30,10 @@ void SettingDialog::setOtherPrinterName(QString printerName)
|
||||
ui->otherPrinter->setCurrentIndex(ui->otherPrinter->findText(printerName));
|
||||
}
|
||||
|
||||
QString SettingDialog::certPrinterName(){
|
||||
return ui->certPrinter->currentText();
|
||||
}
|
||||
QString SettingDialog::certPrinterName() { return ui->certPrinter->currentText(); }
|
||||
|
||||
QString SettingDialog::othenPrinterName()
|
||||
{
|
||||
return ui->otherPrinter->currentText();
|
||||
}
|
||||
QString SettingDialog::othenPrinterName() { return ui->otherPrinter->currentText(); }
|
||||
|
||||
bool SettingDialog::deleteLastFile(){
|
||||
return ui->checkBox->isChecked();
|
||||
}
|
||||
|
||||
void SettingDialog::setDeleteLastFile(bool value)
|
||||
{
|
||||
ui->checkBox->setChecked(value);
|
||||
}
|
||||
bool SettingDialog::deleteLastFile() { return ui->checkBox->isChecked(); }
|
||||
|
||||
void SettingDialog::setDeleteLastFile(bool value) { ui->checkBox->setChecked(value); }
|
||||
|
@@ -7,12 +7,11 @@ namespace Ui {
|
||||
class SettingDialog;
|
||||
}
|
||||
|
||||
class SettingDialog : public QDialog
|
||||
{
|
||||
class SettingDialog: public QDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SettingDialog(QWidget *parent = 0);
|
||||
explicit SettingDialog(QWidget* parent = 0);
|
||||
~SettingDialog();
|
||||
void setCertPrinterName(QString printerName);
|
||||
void setOtherPrinterName(QString printerName);
|
||||
@@ -20,11 +19,12 @@ public:
|
||||
QString othenPrinterName();
|
||||
bool deleteLastFile();
|
||||
void setDeleteLastFile(bool value);
|
||||
|
||||
private:
|
||||
void initPrinters();
|
||||
|
||||
private:
|
||||
Ui::SettingDialog *ui;
|
||||
Ui::SettingDialog* ui;
|
||||
};
|
||||
|
||||
#endif // SETTINGDIALOG_H
|
||||
|
@@ -1,14 +1,17 @@
|
||||
#include "XmlModel.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
XmlModel::XmlModel(QByteArray *data) {
|
||||
XmlModel::XmlModel(QByteArray* data)
|
||||
{
|
||||
if (data) {
|
||||
m_doc.setContent(*data);
|
||||
initModel();
|
||||
}
|
||||
}
|
||||
|
||||
void XmlModel::setXMLData(QByteArray *data) {
|
||||
void XmlModel::setXMLData(QByteArray* data)
|
||||
{
|
||||
if (data) {
|
||||
beginResetModel();
|
||||
m_doc.setContent(*data);
|
||||
@@ -17,7 +20,8 @@ void XmlModel::setXMLData(QByteArray *data) {
|
||||
}
|
||||
}
|
||||
|
||||
void XmlModel::initModel(){
|
||||
void XmlModel::initModel()
|
||||
{
|
||||
m_items = m_doc.firstChildElement("items");
|
||||
parseHeaders();
|
||||
}
|
||||
@@ -27,47 +31,41 @@ void XmlModel::parseHeaders()
|
||||
m_fields.clear();
|
||||
QDomNode root = m_doc.firstChildElement("items");
|
||||
QDomNode item = root.firstChild();
|
||||
for (int i=0; i<item.childNodes().count();++i){
|
||||
for (int i = 0; i < item.childNodes().count(); ++i) {
|
||||
QDomNode attr = item.childNodes().item(i);
|
||||
m_fields.append(attr.nodeName());
|
||||
m_fields.append(attr.nodeName());
|
||||
}
|
||||
}
|
||||
|
||||
QModelIndex XmlModel::index(int row, int column, const QModelIndex &parent) const
|
||||
QModelIndex XmlModel::index(int row, int column, const QModelIndex& parent) const
|
||||
{
|
||||
if (m_fields.isEmpty())
|
||||
return QModelIndex();
|
||||
return createIndex(row, column);
|
||||
}
|
||||
|
||||
QModelIndex XmlModel::parent(const QModelIndex &child) const
|
||||
{
|
||||
return QModelIndex();
|
||||
}
|
||||
QModelIndex XmlModel::parent(const QModelIndex& child) const { return QModelIndex(); }
|
||||
|
||||
int XmlModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
return m_items.childNodes().count();
|
||||
}
|
||||
int XmlModel::rowCount(const QModelIndex& parent) const { return m_items.childNodes().count(); }
|
||||
|
||||
int XmlModel::columnCount(const QModelIndex &parent) const
|
||||
{
|
||||
return m_fields.count();
|
||||
}
|
||||
int XmlModel::columnCount(const QModelIndex& parent) const { return m_fields.count(); }
|
||||
|
||||
QVariant XmlModel::data(const QModelIndex &index, int role) const
|
||||
QVariant XmlModel::data(const QModelIndex& index, int role) const
|
||||
{
|
||||
if (role == Qt::DisplayRole) {
|
||||
if (index.isValid()){
|
||||
if (index.isValid()) {
|
||||
QDomNode data = m_items.childNodes().at(index.row()).childNodes().item(index.column());
|
||||
return data.toElement().text();
|
||||
} else return QVariant();
|
||||
} else return QVariant();
|
||||
} else
|
||||
return QVariant();
|
||||
} else
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QVariant XmlModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||
{
|
||||
if(orientation==Qt::Horizontal&&role==Qt::DisplayRole){
|
||||
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
|
||||
return m_fields[section];
|
||||
} else return QVariant();
|
||||
} else
|
||||
return QVariant();
|
||||
}
|
||||
|
@@ -5,20 +5,21 @@
|
||||
#include <QDomDocument>
|
||||
#include <QVector>
|
||||
|
||||
class XmlModel : public QAbstractItemModel
|
||||
{
|
||||
class XmlModel: public QAbstractItemModel {
|
||||
public:
|
||||
XmlModel(QByteArray* data = 0);
|
||||
void setXMLData(QByteArray* data);
|
||||
void parseHeaders();
|
||||
QModelIndex index(int row, int column, const QModelIndex &parent) const;
|
||||
QModelIndex parent(const QModelIndex &child) const;
|
||||
int rowCount(const QModelIndex &parent) const;
|
||||
int columnCount(const QModelIndex &parent) const;
|
||||
QVariant data(const QModelIndex &index, int role) const;
|
||||
QModelIndex index(int row, int column, const QModelIndex& parent) const;
|
||||
QModelIndex parent(const QModelIndex& child) const;
|
||||
int rowCount(const QModelIndex& parent) const;
|
||||
int columnCount(const QModelIndex& parent) const;
|
||||
QVariant data(const QModelIndex& index, int role) const;
|
||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
|
||||
|
||||
private:
|
||||
void initModel();
|
||||
|
||||
private:
|
||||
QDomDocument m_doc;
|
||||
QDomNode m_items;
|
||||
|
@@ -1,10 +1,11 @@
|
||||
#include "MainWindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
//QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
|
||||
// QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
|
||||
MainWindow w;
|
||||
w.show();
|
||||
|
||||
|
Reference in New Issue
Block a user