পাইথন ব্যবহার করে কোনও প্রকল্পের পরিবর্তনশীল কীভাবে পরিবর্তন করবেন?


10

আমি পাইথন কনসোল ব্যবহার করে কোনও ব্যবহারকারী-সংজ্ঞায়িত প্রকল্পের ভেরিয়েবলের মান (ম্যানুয়ালি প্রজেক্ট সেটিংস | পরিবর্তনশীলগুলিতে সম্পাদনা করা যেতে পারে) পরিবর্তন করতে চাই। আমি কিউজেসএক্সপ্রেসকন্টেক্সটস্কোপ ক্লাসে সেটভ্যারেবল () ফাংশনটি সন্ধান করেছি কিন্তু প্রকল্পের সেটিংসে ভেরিয়েবলটি বাস্তবে পরিবর্তন করতে সফল হই নি। আমার কোড এখন পর্যন্ত:

iface.mapCanvas().mapSettings().expressionContext().scope(0).setVariable('myvar',1)

আমার ধারণা আমি বিভিন্ন অভিব্যক্তি প্রসঙ্গে হারিয়ে যাচ্ছি ...

উত্তর:


11

QgsExpressionContextUtils ( https://qgis.org/api/classQgsExpressionContextUtils.html ) দেখুন। আপনার যে পদ্ধতিটি প্রয়োজন তা হ'ল QgsExpressionContextUtils.setProjectVariable, যেমন

QgsExpressionContextUtils.setProjectVariable('myvar','hello world')

ভেরিয়েবল মুছে ফেলার বিষয়ে কী? আমি এর জন্য কোনও পদ্ধতি খুঁজে QgsExpressionContextUtils
পাইনি

এটি করার জন্য কোনও উচ্চ স্তরের এপিআই নেই। সম্ভবত আপনি ভেরিয়েবলটি নুলিংগের সাথে দূরে সরে যেতে পারেন (এটি কোনওরূপে সেট করে না), তবে তা না হলে আপনাকে QgsExpressionContextUtils.setProjectVariables ({}) ব্যবহার করতে হবে এবং পুরোটি পুনরায় সেট করতে হবে। আপনাকে প্রথমে QgsExpressionContextUtils.projectScope () পরীক্ষা করতে হবে এবং আপনি রাখতে চান এমন সমস্ত ভেরিয়েবলের একটি ডিক তৈরি করতে হবে। এটি আদর্শের থেকে অনেক দূরে - তবে আপনি কিউজিআইএস বিকাশে জড়িত থাকতে এবং গিথুবটিতে একটি টান অনুরোধের মাধ্যমে প্রেরণ করতে চাইলে এপিআই-তেও তুচ্ছ সংযোজন হতে পারে ...
এনডাসন

ধন্যবাদ @ অ্যান্ডসন, এটি পুনরায় সেট করতে আপনার কাজের সাথে কাজ করে setProjectVariables(preserved_variables)আমি সি ++ কোড পরীক্ষা করে দেখেছি, আমি আশা করি আমি কার্যকারিতাটির জন্য অবদান রাখতে পারব।
ইসমাইলসুন্নী

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.