16,240
社区成员
发帖
与我相关
我的任务
分享
void QTest_QStandardDialog::on_pushButton_qfiledialog_save_clicked()
{
QString strPicPath = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
{
QFileDialog dialog(this);
dialog.setAcceptMode(QFileDialog::AcceptSave);
dialog.setFileMode(QFileDialog::AnyFile);
dialog.setDefaultSuffix("png");
dialog.setNameFilter(QString(tr("Images (*.png *.xpm *.jpg)")));
dialog.setViewMode(QFileDialog::Detail);
dialog.setDirectory(strPicPath);
dialog.setOptions(dialog.options() | QFileDialog::DontConfirmOverwrite);
if( QFileDialog::Accepted == dialog.exec() ) {
QString s1 = dialog.selectedNameFilter();
QString strFile;
dialog.fileSelected(strFile);
QStringList strList = dialog.selectedFiles();
QString strFiles;
for(int i=0; i < strList.size(); i ++) {
strFiles += QString("[") + strList.at(i) + QString("]");
}
}
}
void Gtk_FileDialog::on_pushButton_gtk_filedialog_save_clicked()
{
/* 这个函数在所有的 GTK 程序都要调用。参数由命令行中解析出来并且送到该程序中*/
gtk_init(0, 0);
GtkWidget *gtkWidget;
gtkWidget = gtk_file_chooser_dialog_new("", 0,
GTK_FILE_CHOOSER_ACTION_SAVE,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
GtkDialog* gtkDailog = (GtkDialog *)gtkWidget;
gtk_window_set_title(GTK_WINDOW(gtkDailog), "gtkwindow's title");
gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(gtkDailog), 1);
//
GtkWidget *acceptButton = gtk_dialog_get_widget_for_response(gtkDailog, GTK_RESPONSE_OK);
GtkWidget *rejectButton = gtk_dialog_get_widget_for_response(gtkDailog, GTK_RESPONSE_CANCEL);
// Images (*.html *.jpg)
// 文件过滤
GtkFileFilter *gtkFilter = gtk_file_filter_new();
gtk_file_filter_set_name(gtkFilter, "Filter_png (*.png)");
gtk_file_filter_add_pattern(gtkFilter, "*.png");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(gtkDailog), gtkFilter);
gtkFilter = gtk_file_filter_new();
gtk_file_filter_set_name(gtkFilter, "Filter_png (*.jpg)");
gtk_file_filter_add_pattern(gtkFilter, "*.jpg");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(gtkDailog), gtkFilter);
//
gboolean confirmOverwrite = 1;
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(gtkDailog), confirmOverwrite);
g_signal_connect_swapped(G_OBJECT(gtkDailog), "response", G_CALLBACK(onResponse), this);
//g_signal_connect(GTK_OBJECT(acceptButton), "clicked", G_CALLBACK(file_ok_sel), gtkDailog);
gtk_button_set_label(GTK_BUTTON(acceptButton), GTK_STOCK_SAVE);
gtk_button_set_label(GTK_BUTTON(rejectButton), GTK_STOCK_CANCEL);
//gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkWidget), "1111.png");
gtk_dialog_run(gtkDailog);
}
发现,也没有办法弹出“文件存在的提示“。