কীভাবে সেটিংসে তাত্ক্ষণিক পরিবর্তনগুলি প্রয়োগ করা যায়?


15

পাইকিজিআইএস দিয়ে আপনি বিভিন্ন সেটিংস পরিবর্তন করতে পারেন যেমন স্তর প্যানেলে গোষ্ঠীগুলি তৈরি করা (বা বিষয়বস্তুর সারণী) সাহসী:

from PyQt4.QtCore import QSettings
QSettings().setValue("/Qgis/legendGroupsBold", True)

সেটিংসটি লিখিত হয় যা বিকল্পগুলি বা টাইপিং থেকে দেখা যায়:

QSettings().value("/Qgis/legendGroupsBold")
>>> u'true'

তবে এটি প্রয়োগ হয় না। আমি ভেবেছি ব্যবহার

QSettings().sync()

সাহায্য করতে পারে কিন্তু দুর্ভাগ্যজনকভাবে না। এটি প্রয়োগ করার একমাত্র উপায় হ'ল হয় জিইউআইতে যান ( Settings > Options) তারপরে OKকিউজিআইএস ক্লিক করুন বা পুনঃসূচনা করুন ।

পাইকিজিআইএস-এর মাধ্যমে এটি করার কোনও পদ্ধতি আছে কি?


প্রসঙ্গ :

আমি কেবলমাত্র গ্রুপের নামগুলি গা bold় এবং স্তরগুলির নাম নয় তা নিশ্চিত করার জন্য একটি প্রকল্পের ফাইলটিতে এটি ম্যাক্রো হিসাবে যুক্ত করতে চাই। সুতরাং, প্রকল্পটি লোড হওয়ার পরে কিউসেটিংস প্রয়োগ করা হলে (প্রকল্পটি বন্ধ হয়ে গেলে প্রাথমিক সেটিংস পুনরায় প্রয়োগ করা হবে) এটি আদর্শ হবে।


আপনি যখন আপনার পরিবর্তনগুলি সম্পাদন করতে সিঙ্ককে () কল করবেন, আপনি কি তখন স্থিতি () বলবেন?
কেন

@ হোয়াজার - ধন্যবাদ তবে এটি পরীক্ষাও হয়েছে এবং এখনও কোনও পরিবর্তন হয়নি।
জোসেফ ২

2
এটি তাই অদ্ভুত, হয়তো একটি বাগ কারণ ব্যবহার করে একই ঘটে QSettings().setValue("/qgis/legendLayersBold", False).আমি মনে করি যে বিষয়টি এই লাইন রয়েছে github.com/qgis/QGIS/blob/release-2_18/src/app/...
Fran রাগা

1
সম্ভাব্য পদ্ধতিটি QgisApp::instance()->legend()->updateLegendItemStyles();কিন্তু ভবিষ্যতের সংস্করণে সম্ভবত রয়েছে?
ফ্রান রাগ

@ ফ্রেঞ্চিস্কো রাগা - লিঙ্কটির জন্য ধন্যবাদ, এটি একটি বাগের মতো মনে হচ্ছে। আমি একটি বাগ রিপোর্ট পোস্ট করার কথা ভাবছিলাম তবে কিউআইজিআইএস ৩.০ শিগগিরই প্রকাশিত হবার সাথে সাথে আমি অপেক্ষা করব এবং নতুন সমস্যাটিতে এই সমস্যাটি এখনও বিদ্যমান কিনা =)
জোসেফ

উত্তর:


2

আমার মনে হয় এটা সম্ভব নয় যদি না আপনি একটি লিখতে কী আপনার মধ্যে ডিফল্ট স্থিতি সঙ্গে \HKEY_CURRENT_USER\Software\QGIS\qgis\UI\state এখানে কটাক্ষপাত

আসলে, যখন আমরা সফ্টওয়্যারটি পুনরায় চালু করি এটি স্বয়ংক্রিয়ভাবে আমাদের জন্য এটি করে।

এই সমাধানটি পরীক্ষা করুন:

#!/usr/bin/python
from PyQt4.QtCore import QSettings
QSettings( "QGIS", "QGIS2" ).remove( "/UI/state" )
QSettings( "QGIS", "QGIS2" ).remove( "/ComposerUI/state" )


#(for 1.8 it's QGIS instead of QGIS2 IIRC).

যদি এটি কাজ না করে, আপনাকে সেই রেজিস্ট্রি মানটি আবার লিখতে একটি স্ক্রিপ্ট লিখতে হবে।

এটি করার জন্য আপনাকে রেজিস্ট্রি মানগুলি হস্তান্তর করতে উইনগ্রিগ ব্যবহার করতে হবে ।

আপনি উইন্ডোজ ব্যবহার করেন আপনি regedit.exe এর মাধ্যমে আপনার রেজিস্ট্রি কীগুলি দেখতে পারেন।

এটি তোমাকে সাহায্য করবে বলে আশা করি...


আপনার উত্তরের জন্য ধন্যবাদ, আমি মনে করি কিউজিআইএস-এর জন্য ম্যাক্রোর দ্বারা কীটি লিখিত আছে যখন এটি প্রারম্ভকালে পড়ার জন্য আমাকে কিউজিআইএস পুনরায় চালু করতে হবে। এখনও কোনও উপায় সন্ধান করার চেষ্টা করছে :)
জোসেফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.